前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Python完全自学教程》免费在线连载2.2

《Python完全自学教程》免费在线连载2.2

作者头像
老齐
发布2022-04-01 09:55:24
1.2K0
发布2022-04-01 09:55:24
举报
文章被收录于专栏:老齐教室

2.2 注释

之所以要学习高级编程语言,而不学习机器语言,是因为高级编程语言“对人友好”。现在高级编程语言的演化方向也是“对人更友好”、“更节省开发者时间”。

如今的软件开发实践,也不再是纯粹的“个体劳动”,已经越来越“流水线化”——偶尔也会有报道某软件是某个人凭一己之力开发的,事实上如今的孤胆英雄也仅存在于文稿中,更多的是多人协作进行开发。既然如此,那么就要让写的程序更便于人“看懂”,为此要涉及到高级编程语言的变量、函数等的命名,以及代码的组织结构等等多方面问题,这些内容在本书后续内容中会逐步学习。本节先学习一种简单且非常重要的方法:写注释( comment )。

注释是程序的重要组成部分,良好的注释有助于增强程序的可读性、可维护性。注释是“给人看的”,所以,一定要用自然语言编写(至于用哪种自然语言,要根据项目的统一规定和人员的组成状况而定)。

以2.1节所创建的 hello.py 文件为例,在其中增加如下所示的内容:

代码语言:javascript
复制
print("Hello World")    # print a string.
print("Life is short. You need Python.")    # 打印一行英文字符。

所增加的内容就是注释,其中:

  • #是英文状态下输入的注释开始符号,表示此符号之后的内容都是注释,直到本行结束。
  • print a tring ”和“ 打印一行英文字符。 ”是注释的具体内容,此内容与 # 符号之间的空格不是强制的,有此空格更便于阅读。

如此形式的注释,也称为“行注释”——从注释符号开始到本行结束,都是注释。

在上面的示例中,一行注释使用的是英文,另一行是中文。然后调试上述代码,正常地显示了打印的结果(如图2-2-1所示),这说明 Python 解释器在执行此程序的时候,并没有受到所增加的注释影响——注释是给人看的,“机器不看”。

图2-2-1 调试增加注释后的程序

可能有的读者在调试上述代码的时候报错,比如类似下面的错误提示:

代码语言:javascript
复制
SyntaxError: Non-UTF-8 code starting with '\xb4' in file /Users/qiwsir/codes/hello.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

这是字符编码所致,如果删除了程序中的中文注释,就会消除此错误——这是方法之一。由报错信息可知,此问题是所用 IDE 编码类型导致的。不论读者使用哪一款 IDE 软件,通常都应当将其编码设置为 UTF-8 (参见第4章4.1节)。图2-2-2所示是 VS Code 中显示的编码配置。所以,将 IDE 编码设置为 UTF-8 也是一种解决方法。

图2-2-2 VS Code 中设置 UTF-8 编码

还有一个方法,就是在文件的顶部声明使用 UTF-8 编码。

代码语言:javascript
复制
#coding:utf-8
print("Hello World")    # print a string.
print("Life is short. You need Python.")    # 打印一行英文字符。

新增 #coding:utf-8之后,调试此程序,就不再报错了。除了如上所示的写法之外,读者在其他资料中还会看到 # -*- coding:utf-8 -*-#coding=utf-8 ,都是声明本文件使用 UTF-8 编码,如此即可在文件中使用中文等非英文字符。

符号 # 发起的注释,可以如前面那样,用在某行代码之后,用于注释该行;或者单独占据一行,多用于说明下面若干行代码的含义,如:

代码语言:javascript
复制
# This is my first Python program.
print("Hello World")

另外,在调试程序的时候,有可能要暂时不让计算机“看到”某些代码,也可以在该行代码前面加上 # ,将其暂时转换为注释,等需要的时候再转换回来。例如将 hello.py 文件中的代码修改为:

代码语言:javascript
复制
#coding:utf-8
print("Hello World")    # print a string.
# print("Life is short. You need Python.") 

此时调试该程序,则会只打印“ Hello World ”字样。

常用的 IDE 提供了实现多行“注释”以及取消的快捷操作。以 VS Code 为例,如图2-2-3所示,将第6、7、8、9三行代码选中之后,使用快捷键组合“ COMMAND + / ”(或“ CTRL + / ”),即可将选中的多行“注释”了(此处的“注释”是动词,或者说是“名词用作动词”,意思是“将多行代码变成了注释”。如图2-2-4所示)。这个组合键是“注释”和“取消注释”的切换键,即选中多个已注释的行之后,通过此组合键可以取消注释。

图2-2-3 选中多行

图2-2-4 实现对多行的注释

除了 # 发起的是单行注释之外,还有多行注释。如下代码所示,使用三对英文状态的下输入的双引号,能够实现多行注释,下面的代码依然是在 hello.py 中编辑,从第2行开始,输入了多行注释内容。

代码语言:javascript
复制
#coding:utf-8
"""
This is my first Python program.
I like it.
I am learning it myself.
"""

print("Hello World")    # print a string.
# print("Life is short. You need Python.")    

这种注释是针对本文件的,常称为“模块注释”(一个 .py文件,可以看做一个模块,关于模块的内容,参阅第11章11.1节)。

虽然代码的注释能够增强可读性,而且操作上简单易行,但是,对注释的争论向来没有消停,比如有的人说“好代码”不需要写注释(其本意是通过代码中变量、函数、类等命名以及恰当的代码组织实现高可读性),更多的争论围绕什么时候写注释、注释的内容是什么等展开。尽管对很多争论的话题都没有标准答案,但是在开发实践中,也逐渐达成了一些经验性的共识,比如:

注释内容不要重复代码。下面注释就不提倡。

代码语言:javascript
复制
print('Hello World')   # print hello world

不要用注释替代丑陋的变量命名。例如打算创建一个表示我已经出版的图书的列表(列表,是 Python 的一类内置对象,参阅第4章4.3节),如果用下面的方式:

代码语言:javascript
复制
# a list of books
a = ["机器学习数学基础", "Python完全自学手册", "数据准备和特征工程"]

虽然用注释的方式说明变量 a 的含义(关于变量,请参阅2.3节),但此注释实则是丑陋代码的遮羞布,丝毫无法改变所命名变量致使程序的可读性降低的本质。如果改为:

代码语言:javascript
复制
books = ["机器学习数学基础", "Python完全自学手册", "数据准备和特征工程"]

即使不用注释,代码的含义也一目了然。故首要的是写“好代码”,注释是对代码的辅助,而不要用注释替代晦涩的代码。

注释的用语简单明了,表达准确,且讲究文明礼貌。这是对开发者表达能力的基本要求。

自学建议 编程是一类实践性非常强的工作,以本节介绍的“注释”为例,读者可以在网络上搜索到更多的相关内容,比如号称某些较知名机构的编程规范等,这些内容都可以用作自己工作实践的参考,但不能作为金科玉律。”

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.2 注释
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档