大神解惑|程序员国的语言

在训练小白写循环语句的时候,大神给了小白这么一个练习题:写一段程序,找到 5 在 list [1, 2, 3, 5, 8] 中的位置。然后,小白给出了让大神感觉匪夷所思的代码(为了保护小白,大神在这里隐去了小白的小白程序)。大神让小白用人类的语言来描述一下自己想干什么,小白的描述如下(已被简化):

让 x 从 0 开始计算,直到找到 L[x] = 5。

用人类的大脑理解的话,当然是没有问题的。但程序员国的人并不这么思考,或者说并不这么说话。于是大神让小白把后半句换个说话再描述一下,小白想了想说:

直到发现 L[x] = 5

大神还是不满意,让小白再试一下,痛苦的小白又想了半天,给出了这样一个描述:

当 L[x] = 5 成立时,输出 x 的值

虽然小白在完成最后一次描述之后,写出了正确的程序,但他其实说的还是不对。

程序员国的人是怎么说话的

在程序员国存在很多俚语,这些俚语看起来和人类的语言差不多,但实际上这些俚语对应了程序中的一行或者一段代码。程序员们使用这些语言交流,并可以直接翻译成对应的代码。所以,这些语言又有着与表面不太一样的意思。大神在这里总结一些常见的程序员的语言,只有学会了这些表达的方式,小白才能融入到程序员的世界,和他们无缝的交流。当然,学会了这些语言,并且使用这些语言思考,也就大概学会了基本的程序写法。

1. = 怎么说

小白在学 Python 的时候,第一课就学了变量。但程序员的世界里,这个不读“等于”,这个读作“赋值”。意思和数学里的“设”差不多。所以在读题目的时候,常常会看到“设 x = 1”,或者“给定 L = [1, 2, 3, 4, 5]”,其意思是给一个变量赋了对应的值。

2. if 是什么意思

if 是代码里最常见的单词,只要需要对一些条件进行区分,就需要这个单词。在程序员的世界里,这个不读成“直到”,也不是“发现”和“当”。这些都是错误的表达。这个就是字面的意思:如果。看下小白上面的语言表述,其实大神就是想引导他表达“如果”这个意思:

让 x 从0开始计算,如果 L[x] == 5,就打印 x 的值。

当脑子里想的“如果”,就不会写出奇怪的代码了。其实如果和程序多交流就会发现,他们很喜欢说“如果”这个词,因为这就是他们每天的工作(职业病)。

if 配对的 else,在程序员国被说成:否则。这样,比较完整的的表达就是:如果……,那么……,否则……。这些表达虽然很呆(所以程序常常都给人很呆的印象),但很实用,因为直接对应了程序中的片段。

3. for 是什么意思

for 也是也程序里很常用的单词,本质上这个词表示重复。不过,翻译成程序员国人的语言,这个应该这么说:对于每个……,做“一些事情”。比如 Python 中的 for

for x in range(0, 10):
    print(x)

翻译成人类的语言就是:对于 [0, 10) 这个区间里的每个值 x,打印 x 的值。

4. while 是什么意思

在小白的几个表达中,使用了一个“当”的说法,但其实while在程序员国表表示“当”的意思。还是举一个 Python 里的例子:

x = 10
while x > 0:
    print(x)
    x = x - 1

这里,翻译成人类的语言就是:当 x 的值大于 0 的时候,就打印 x 的值。可能有些朋友因为受计算机二级考试的毒害,还知道一个“直到”的说法。不过,这个在 Python 里并不存在,也不是必须品。比如上面这个代码,也可以翻译成:打印 x 的值,直到 x <= 0。显然这个需要脑抽一下把条件翻转过来(是不是有点虚拟语气的意思)。

鉴于小白目前的学习进度,了解这些说法暂时够用。以后学习了更多的内容,再来总结吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,793评论 0 38
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,110评论 25 707
  • 今天,有一个陌生的朋友通过电话要安利产品,她告诉了我地址。 我听见财政局几个字就明白了,说:“我知道了。” 车到小...
    了凡耕读阅读 242评论 0 3
  • 握不到你的手, 但感觉到你的温柔。 看不到你的脸, 但能想起你的笑容。 想见你, 却是在梦里。 想说爱你, 却只能...
    名字什么的最烦了阅读 139评论 0 0