2.1.3 程序的书写格式与基本规则
Python的书写格式有严格的要求,不按照格式书写有可能导致程序不能正确运行,例如,缩进是必须按照代码块层次要求的。在《Google开源项目风格指南》中,还列出了一些常见的书写格式基本规则建议,虽然并不影响程序执行结果,但良好的编程风格会显著提升程序的可读性。
1.缩进
Python使用缩进来区分代码块的级别。Python语言中没有采用花括号或begin…end等来分隔代码块,而是使用冒号和代码缩进区分代码之间的层次。代码缩进是一种语法规则,错误的缩进可能导致代码的含义完全不同。例如:
执行结果没有任何输出。因为print(x)位于if代码块内,和x =x+1是同一个级别的,都没有被执行。
而下面这段的代码,最后一行缩进不同:
执行结果会输出0。因为print(x)位于if代码块外,和if语句是一个级别的,会被执行。
建议使用在缩进行代码前输入4个空格来表示代码缩进,不推荐其他数量的空格或使用制表符的方式来完成缩进。
部分Python编辑器(如IDLE,Notepad++,PyScripter,PyCharm等)能根据所输入的代码层次关系自动缩进代码,提高编码效率。
2.分号
Python允许在行尾加分号,但不建议加分号,也不要用分号将两条命令放在同一行中。建议每条命令单独一行。
3.长语句行
除非遇到长的导入模块语句或者注释里的URL,建议每行不宜超过80个字符。
对于超长语句,允许但不提倡使用反斜杠连接行,建议在需要的地方使用圆括号来连接行。
例如:
如果一个文本字符串在一行放不下,可以使用圆括号来实现隐式行连接:
在注释中,即使超过80字符,也要将长的URL或导入长的模块语句放在同一行中。
4.括号
不建议使用不必要的括号。除非用于实现行连接,否则不要在返回语句或条件语句中使用括号。例如:
5.空行
顶级定义之间空两行。例如,图2-1模块例子中,变量定义、类定义以及函数定义之间,可以空两行。
类内部的方法定义之间,类定义与第一个方法之间,建议空一行。
函数或方法中,如果有必要,可以空一行。
6.空格
对于赋值(=)、比较(= =, <, >, !=, <>, <=, >=, in, not in, is, is not)、布尔(and, or, not)等运算符,在运算符两边各加上一个空格,可以使代码更清晰。而对于算术运算符,可以按照自己的习惯决定,但建议运算符两侧保持一致。例如:
不建议在逗号、分号、冒号前面加空格,但建议在它们后面加空格(除了在行尾之外)。例如:
参数列表、索引或切片的左括号前不要加空格。例如:
当等号用于指示关键字参数或默认参数值时,不建议在其两侧使用空格。例如:
不建议用空格来垂直对齐多行间的标记,因为这会成为维护的负担(适用于:, #, =等)。例如:
7.注释
注释通常以“#”开始直到行尾结束。
行内注释是指和语句在同一行中的注释。行内注释应该以“#”和单个空格开始,应该至少用两个空格和前面的语句分开。
注释块通常后面跟着代码,且注释块应该与相关代码的缩进一致。注释块中每行以“#”和一个空格开始,注释块内段落以仅含单个“#”的行分割。注释块上下方最好各空一行。
8.文档字符串
文档字符串是Python语言独特的注释方式。文档字符串是包、模块、类或函数中的第一条语句。文档字符串可以通过对象的__doc__成员被自动提取。
我们书写文档字符串时,在其前、后使用三重双引号"""或三重单引号'''。
一个规范的文档字符串应该首先是一行概述,接着是一个空行,然后是文档字符串剩下的部分,并且应该与文档字符串的第一行的第一个引号对齐。
【例2-2】建议的文档字符串示例。
文档字符串可以通过__doc__成员进行查看,也可以出现在help()函数的结果里:
文档字符串通常用于提供在线帮助信息。