习题 1: 第一个程序 ******************************** 你应该在练习 0 中花了不少的时间,学会了如何安装文本编辑器、运行文本编辑器、以及如何运行命令行终端,\ 而且你已经花时间熟悉了这些工具。请不要跳过前一个练习的内容直接进行下面的内容,这也是本书唯一的一次这样的警示。 .. literalinclude:: ex/ex1.py :linenos: 将上面的内容写到一个文件中,取名为 ``ex1.py``\。注意这个命名方式,Python文件最好以 ``.py`` 结尾。 .. warning:: 不要把上面内容最左边的数字也输进去。这些是所谓的“行号(line numbers)”,程序员在谈论到程序中某个位置\ 的错误时会使用到行号。Python 在程序出错时也会以行号的方式告诉你错误信息,但是你是不需要输入这些行号的。 然后你需要在命令行终端通过输入以下内容来运行这段代码: .. code-block:: bash python ex1.py 如果你写对了的话,你应该看到和下面一样的内容。如果不一样,那就是你弄错了什么东西。\ 不是计算机出错了,计算机没错。 你应该看到的内容 =================== .. literalinclude:: ex/ex1.txt 你也许会看到 ``$`` 前面会显示你所在的目录的名字,这不是问题,但如果你的输出不一样\ 的话,你需要找出为什么会不一样,然后把你的程序改对。 如果你看到类似如下的错误信息: .. literalinclude:: ex/ex1.err :language: python :linenos: 这些内容你应该学会看懂的,这是很重要的一点,因为你以后还会犯类似的错误。就是我现在也会\ 犯这样的错误。让我们一行一行来看。 1. 首先我们在命令行终端输入命令来运行 ``ex1.py`` 脚本。 2. Python 告诉我们 ``ex1.py`` 文件的第 3 行有一个错误。 3. 然后这一行的内容被打印了出来。 4. 然后 Python 打印出一个 ``^`` (井号,caret) 符号,用来指示出错的位置。 注意到少了一个 ``"`` (双引号,double-quote) 符号了吗? 5. 最后,它打印出了一个“语法错误(SyntaxError)”告诉你究竟是什么样的错误。通常这些错误信息\ 都非常难懂,不过你可以把错误信息的内容复制到搜索引擎里,然后你就能看到别人也遇到过这样的错误, 而且你也许能找到如何解决这个问题。 加分习题 ============ 你还会有 ``加分习题`` 需要完成。加分习题里边的内容是供你尝试的。如果你觉得做不出来,你可以暂时\ 跳过,过段时间再回来做。 在这个练习中,试试这些东西: 1. 让你的脚本再多打印一行。 2. 让你的脚本只打印一行。 3. 在一行的起始位置放一个 '#' (octothorpe) 符号。它的作用是什么?自己研究一下。 从现在开始,除非特别情况,我将不再解释每个习题的工作原理了。 .. note:: 井号有很多的英文名字,例如:'octothorpe(八角帽)','pound(英镑符)', 'hash(电话的#键)', 'mesh(网)' 等。