本节书摘来自异步社区《“笨办法”学Python(第3版)》一书中的习题2,作者[美]Zed A. Shaw,王巍巍 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
习题2 注释和#号
程序里的注释是很重要的。它们可以用自然语言告诉你某段代码的功能是什么。想要临时移除一段代码时,你还可以用注释的方式临时禁用这段代码。这个习题就是让你学会在Python中注释。
ex2.py
1 # A comment, this is so you can read your program later.
2 # Anything after the # is ignored by python.
3
4 print "I could have code like this." # and the comment after is ignored
5
6 # You can also use a comment to "disable" or comment out a piece of code:
7 # print "This won't run."
8
9 print "This will run."
从现在开始,我将用这样的方式来演示代码。我一直在强调“完全相同”,不过你也不必按照字面意思理解。你的程序在屏幕上的显示可能会有些不同,重要的是你在文本编辑器中输入的文本的正确性。事实上,我可以用任何编辑器写出这段程序,而且内容是完全一样的。
应该看到的结果
习题2 会话
$ python ex2.py
I could have code like this.
This will run.
再说明一次,我不会再贴各种屏幕截图了。你应该明白上面的内容是输出内容的字面翻译,而$ python ...下面的内容才是你应该关心的。
附加练习
1.弄清楚#字符的作用,而且记住它的名字(英文为octothorpe或者pound character)。
2.打开ex2.py文件,从后往前逐行检查。从最后一行开始,倒着逐个单词检查回去。
3.有没有发现什么错误呢?有的话就改正过来。
4.朗读你写的习题,把每个字符都读出来。有没有发现更多的错误呢?有的话也一样改正过来。
常见问题回答
你确定#字符的名称是pound character?
我叫它octothorpe,这个名字没有哪个国家用作别的意思,而且所有的人都能看懂它的意思。每个国家都觉得他们的叫法最正确、最闪亮。对我来说这是自大狂的想法,而且说真的,与其去关心这种细枝末节,还不如把时间花在更重要的事情上面,比如好好学习编程。
如果#是注释的意思,那么为什么# -- coding: utf-8 --能起作用呢?
Python其实还是没把这行当做代码处理,这种用法只是让字符编码格式被识别的一个取巧的方案,或者说是一个没办法的办法吧。在编辑器设置里你还能看到一种类似的注释。
为什么print "Hi # there."里的#没被忽略掉?
这行代码里的#处于字符串内部,所以它就是引号结束前的字符串中的一部分,这时它只是一个普通字符,而不代表注释的意思。
怎样做多行注释?
每行前面放一个#就可以了。
我们国家的键盘上找不到#字符,怎么办?
有的国家要通过Alt键组合才能输入这个字符。你可以用搜索引擎找一下解决方案。
为什么要让我倒着阅读代码?
这样可以避免让你的大脑跟着每一段代码内容的意思走,这样可以让你精确处理每个片段,从而让你更容易发现代码中的错误。这是一个很好使的查错技巧。