Python工匠:案例、技巧与工程实践
上QQ阅读APP看书,第一时间看更新

第1章 变量与注释

编程是一个通过代码来表达思想的过程。听上去挺神秘,但其实我们早就做过类似的事情——当年在小学课堂上写出第一篇500字的作文,同样也是在表达思想,只是二者方式不同,作文用的是词语和句子,而编程用的是代码。

但代码与作文之间也有相通之处,代码里也有许多“词语”和“句子”。大部分的变量名是词语,而大多数注释本身就是句子。当我们看到一段代码时,最先注意到的,不是代码有几层循环,用了什么模式,而是变量与注释,因为它们是代码里最接近自然语言的东西,最容易被大脑消化、理解。

正因如此,如果作者在编写变量和注释时含糊不清、语焉不详,其他人将很难搞清楚代码的真实意图。就拿下面这行代码来说:

# 去掉 s 两边的空格,再处理
value = process(s.strip())

你能告诉我这段代码在做什么吗?当我看到它时,是这么想的:

·在s上调用strip(),所以s可能是一个字符串?不过为什么要去掉两边的空格呢?

·process(...),顾名思义,“处理”了一下s,但具体是什么处理呢?

·处理结果赋值给了value,value代表“值”,但“值”又是什么?

·开头的注释就更别提了,它说的就是代码本身,对理解代码没有丝毫帮助。

最后的结论是:“将一个可能是字符串的东西两端的空格去掉,然后处理一下,最后赋值给某个不明物体。”我只能理解到这种程度了。

但同样是这段代码,如果我稍微调整一下变量的名字,加上一点点注释,就会变得截然不同:

# 用户输入可能会有空格,使用 strip() 去掉空格
username = extract_username(input_string.strip())

新代码读上去是什么感觉?是不是代码意图变得容易理解多了?这就是变量与注释的魔力。

从计算机的角度来看,变量(variable)是用来从内存找到某个东西的标记。它叫“阿猫”“阿狗”还是“张三”“李四”,都无所谓。注释同样如此,计算机一点儿都不关心你的注释写得是否通顺,用词是否准确,因为它在执行代码时会忽略所有的注释。

但正是这些对计算机来说无关痛痒的东西,直接决定了人们对代码的“第一印象”。好的变量和注释并非为计算机而写,而是为每个阅读代码的人而写(当然也包括你自己)。变量与注释是作者表达思想的基础,是读者理解代码的第一道门,它们对代码质量的贡献毋庸置疑。

本章将对Python里的变量和注释做简单介绍,我会分享一些常用的变量命名原则,介绍编写代码注释的几种方式。在编程建议部分,我会列举一些与变量和注释有关的好习惯。

我们从变量和注释开始,学习如何写出给人留下美好“第一印象”的好代码吧!