Python从入门到精通(第3版)
上QQ阅读APP看书,第一时间看更新

2.1.1 注释规则

注释类似于语文课本中古诗文的注释,如图2.1所示。据此,所谓注释,就是在代码中添加标注性的文字,进而帮助程序员更好地阅读代码。注释的内容将被Python解释器忽略,并不会在执行结果中体现出来。

在Python中,通常包括3种类型的注释,分别是单行注释、多行注释和文件编码声明注释。这些注释在IDLE中的效果如图2.2所示。

1.单行注释

在Python中,使用#作为单行注释的符号。从符号#开始直到换行,其后面所有的内容都作为注释的内容而被Python编译器忽略。

图2.1 古诗文的注释

图2.2 Python中的注释

语法如下:

     # 注释内容

单行注释可以放在要注释的代码的前一行,也可以放在要注释的代码的右侧。例如,下面的两种注释形式都是正确的。

第一种形式:

     01  # 要求输入身高,单位为m,如1.70
     02  height=float(input("请输入您的身高:"))

第二种形式:

     height=float(input("请输入您的身高:"))  # 要求输入身高,单位为m,如1.70

上述两种形式的代码,其运行结果都将如图2.3所示。

图2.3 运行结果

说明

在添加注释时,一定要有意义,即注释能充分体现代码的作用。例如,图2.4中的注释就是冗余的注释。如果将其注释修改为如图2.5所示的注释,则可很清楚地知道代码的作用。

图2.4 冗余的注释

图2.5 推荐的注释

单行注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。例如,下列代码注释是错误的:

     height=float(#要求输入身高 input("请输入您的身高:"))

说明

在IDLE开发环境中:可以通过选择主菜单中的Format→Comment Out Region菜单项(也可直接使用快捷键Alt+3),将选中的代码注释掉;也可以通过选择主菜单中的Format→UnComment Region菜单项(也可直接使用快捷键Alt+4),取消添加的单行注释。

2.多行注释

在Python中并没有一个单独的多行注释标记,而是将包含在一对三引号(即'''……'''或者"""……""")中,并且不属于任何语句的内容则认为是注释。对于这样的代码,将被解释器忽略。这样的代码可以分为多行编写,因此也作为多行注释。

语法格式如下:

     '''
          注释内容1
          注释内容2
          ……
     '''

或者

     """
          注释内容1
          注释内容2
          ……
     """

误区警示

在使用三引号作为注释时,需要注意,三引号必须成对出现,如果只写一半三引号,那么当程序运行时,将会提示EOF while scanning triple-quoted string literal错误。

多行注释通常用来为Python文件、模块、类或者函数等添加版权、功能等信息。例如,下列代码将使用多行注释为demo.py文件添加版权、功能及修改日志等信息:

     01  '''
     02   @ 版权所有:吉林省明日科技有限公司?版权所有
     03   @ 文件名:demo.py
     04   @ 文件功能描述:根据身高、体重计算BMI指数
     05   @ 创建日期:2021年1月31日
     06   @ 创建人:无语
     07   @ 修改标识:2021年2月2日
     08   @ 修改描述:增加根据BMI指数判断体重是否合理的功能代码
     09   @ 修改日期:2021年2月2日
     10  '''

注意

三引号'''……'''或者"""……"""如果出现在语句中,那么就不是注释,而是字符串,这一点要注意区分。例如,图2.6中的代码即为多行注释,而图2.7中的代码即为字符串。

图2.6 三引号为多行注释

图2.7 三引号为字符串

3.文件编码声明注释

在Python 3中,默认采用的文件编码是UTF-8。这种编码支持世界上大多数语言的字符,也包括中文。如果不想使用默认编码,就需要在文件的第一行声明文件的编码,也就是需要使用文件编码声明注释。

语法格式如下:

     # -*- coding:编码 -*-

或者

     #coding=编码

在上述语法中,编码为文件所使用的字符编码类型,如果采用GBK,则设置为gbk或cp936。例如,指定编码为GBK,可以使用以下中文注释:

     # -*- coding:gbk -*-

说明

在上述代码中,“-*-”没有特殊的作用,只是为了美观才加上的。所以上述代码也可以使用“# coding:gbk”代替。

另外,以下代码也是正确的中文注释:

     #coding=gbk