习题 4: 变量(variable)和命名 ******************************* 你已经学会了 ``print`` 和算术运算。下一步你要学的是“变量”。在编程中,变量只不过\ 是用来指代某个东西的名字。程序员通过使用变量名可以让他们的程序读起来更像英语。\ 而且因为程序员的记性都不怎么地,变量名可以让他们更容易记住程序的内容。如果他们\ 没有在写程序时使用好的变量名,在下一次读到原来写的代码时他们会大为头疼的。 如果你被这章习题难住了的话,记得我们之前教过的:找到不同点、注意细节。 1. 在每一行的上面写一行注解,给自己解释一下这一行的作用。 2. 倒着读你的 ``.py`` 文件。 3. 朗读你的 ``.py`` 文件,将每个字符也朗读出来。 .. literalinclude:: ex/ex4.py :linenos: .. note:: ``space_in_a_car`` 中的 ``_`` 是 ``下划线(underscore)`` 字符。你要自己学会\ 怎样打出这个字符来。这个符号在变量里通常被用作假想的空格,用来隔开单词。 你应该看到的结果 =================== .. literalinclude:: ex/ex4.txt :language: console 加分习题 ============ 当我刚开始写这个程序时我犯了个错误,python 告诉我这样的错误信息: .. literalinclude:: ex/ex4.err 用你自己的话解释一下这个错误信息,解释时记得使用行号,而且要说明原因。 更多的加分习题: 1. 我在程序里用了 4.0 作为 ``space_in_a_car`` 的值,这样做有必要吗?如果只用 4 会有什么问题? 2. 记住 4.0 是一个“浮点数”,自己研究一下这是什么意思。 3. 在每一个变量赋值的上一行加上一行注解。 4. 记住 ``=`` 的名字是等于(equal),它的作用是为东西取名。 5. 记住 ``_`` 是下划线字符(underscore)。 6. 将 ``python`` 作为计算器运行起来,就跟以前一样,不过这一次在计算过程中使用\ 变量名来做计算,常见的变量名有 ``i``, ``x``, ``j`` 等等。 常见问题回答 ========================== `=` 和 `==` 有什么不同? `=` (single-equal) 的作用是将右边的值赋予左边的变量名。\`==` (double-equal) 的作用是检查左右离岸边是否相等。习题 27 中你会学到 `==` 的用法。 写成 `x=100` 而非 `x = 100` 也没关系吧? 是可以这样写,但这种写法不好。操作符两边加上空格会让代码更容易阅读。 `print` 时词语间的空格有没有办法不让打印出来? 你可以通过这样的方法实现: ``print "Hey %s there." % "you"``\,后面马上就会讲到。 怎样倒着读代码? 很简单,假如说你的代码有 16 行,你就从第 16 行开始,和我的第 16 行比对,接着比对第 15 行,以此类推,直到全部检查完。 为什么 `space` 用了`4.0`\? 这个主要就是为了让你见识一下浮点数,并且提出这个问题。看看加分习题吧。