Python完全自学教程
上QQ阅读APP看书,第一时间看更新

2.2 编码格式

2.2.1 代码缩进

Python采用代码缩进和冒号“:”区分代码之间的层次。缩进可以使用<Space>键或者<Tab>键实现。使用<Space>键时,通常情况下采用4个空格作为缩进量;而使用<Tab>键时,则将按一次<Tab>键产生的缩进作为缩进量。通常情况下建议使用<Space>键进行缩进。

在Python中,对于类定义、函数定义、流程控制语句,以及异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。

例如,下面代码中的缩进为正确的缩进。

pwd = input("输入密码:").strip()        # 要求输入密码,strip()方法用于去除空格
repwd = input("确认密码:").strip()     # 要求输入确认密码,strip()方法用于去除空格
 
if pwd == repwd :                      # 判断密码是否一致
    print("密码输入正确!")              # 输出"密码输入正确!"
else:
print("确认密码与输入密码不一致!")    # 输出"确认密码与输入密码不一致!"

Python对代码的缩进要求非常严格,同一个级别的代码块的缩进量必须相同。如果不进行合理的代码缩进,将抛出SyntaxError异常。例如,代码中有的缩进量是4个空格,还有的是3个空格,就会出现SyntaxError异常,如图2.1所示。

图2.1 缩进量不同导致的SyntaxError异常

在IDLE中,一般以4个空格作为基本缩进量。不过也可以选择“Options”→“Configure IDLE”命令,在打开的“Settings”对话框(如图2.2所示)的“Fonts/Tabs”选项卡中修改基本缩进量。

图2.2 修改基本缩进量

多学两招

在IDLE的文件窗口中,可以通过选择主菜单中的“Format”→“Indent Region”命令(或按快捷键<Ctrl+]>),将选中的代码进行缩进(向右移动指定的缩进量),也可通过选择主菜单中的“Format”→“Dedent Region”命令(或按快捷键<Ctrl+[>),对代码进行反缩进(向左移动指定的缩进量)。

2.2.2 编码规范

Python采用PEP 8作为编码规范,其中PEP是Python Enhancement Proposal的缩写,翻译成中文是Python增强建议书,而8表示版本号。PEP 8是Python代码的样式指南。下面给出PEP 8编码规范中的一些应该严格遵守的条目。

每个import语句只导入一个模块,尽量避免一次导入多个模块。图2.3所示为推荐写法,而图2.4所示为不推荐写法。

图2.3 推荐写法

图2.4 不推荐写法

不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。例如,图2.5所示的代码为不规范写法。

图2.5 不规范写法

建议每行不超过80个字符,如果超过,建议使用圆括号“()”将多行内容隐式地连接起来,而不推荐使用反斜线“\”进行连接。例如,某个字符串文本在一行上显示不完全,那么可以使用圆括号将其分行显示,代码如下。

print("虽然我是一只蜗牛,我一直在爬,也许还没有爬到金字塔的顶端,"
"但是只要我在爬,就足以给自己带来令生命感动的瞬间。")

例如,以下通过反斜线进行连接的做法是不推荐使用的。

print("虽然我是一只蜗牛,我一直在爬,也许还没有爬到金字塔的顶端,\
但是只要我在爬,就足以给自己带来令生命感动的瞬间。")

不过以下两种情况除外。

导入模块的语句过长。

注释里的URL。

使用必要的空行可以增加代码的可读性。一般在顶级定义(如函数或者类的定义)之间空两行,而在方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行。

通常情况下,在运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔。

应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。

适当使用异常处理结构可提高程序的容错性,但不能过分依赖异常处理结构,适当的显式判断还是必要的。