Python 用缩进层级表示代码块从属关系,而不像 C 语言或 Java 那样用大括号包裹语句组。若缩进不一致或与块起始行不对齐,解释器将抛出 IndentationError。本节说明语句与换行规则、缩进约定、注释与文档字符串(docstring)的写法,便于在后续学习条件与循环时减少结构性错误。
语句(Statement)
解释器按顺序执行的一条指令称为语句。赋值、if、for、while 等均属于语句,例如:
a = 1 # 赋值语句
if a > 0: # if 语句
print(a) # 缩进内的部分属于 if通常一条语句独占一行;换行即表示该语句结束。若将多条语句写在同一行,可用分号分隔,但可读性较差,一般不建议:
a = 1; b = 2; c = 3多行语句
表达式过长时,可在行尾加反斜杠 \,在下一行继续书写同一条语句:
total = 1 + 2 + 3 + \
4 + 5 + 6更常见的做法是隐式换行:只要仍在圆括号、方括号或花括号内部,可直接换行而无需反斜杠:
total = (1 + 2 + 3 +
4 + 5 + 6)
colors = ['red',
'blue',
'green']缩进与代码块
C 语言与 Java 用 {} 界定代码块;Python 则用缩进:从多缩进一层的位置开始,直到缩进回到外层为止,中间语句均属于同一块:
if True:
print('Hello') # 属于 if
a = 5 # 属于 if
print('世界') # 缩进与 if 同级,不属于 if每一缩进层级可用若干空格或 Tab 表示,但同一代码块内必须统一。空格与 Tab 混用、或同一层级宽度不一致,均可能触发 IndentationError。社区约定为一层缩进使用 4 个空格,并尽量避免 Tab。
注释(Comment)
注释供阅读源码的人参考,解释器会忽略注释内容。单行注释以 # 开头,从该符号到行尾均为注释:
# 这是一个注释
print('Hello') # 行尾注释多行说明可连续使用多个以 # 开头的行:
# 这是一个长注释
# 它延伸到了多行也有人用三引号字符串充当多行说明。它并非注释语法,而是未绑定到变量的字符串字面量,运行时会被丢弃,效果上类似被忽略的说明文字:
"""
这也是一个
多行注释
"""文档字符串(Docstring)
在函数、类或模块定义体开头书写的三引号字符串称为文档字符串(docstring),可通过 .__doc__ 读取:
def double(num):
"""函数使值翻倍"""
return 2 * num
print(double.__doc__) # 输出: 函数使值翻倍为公开接口编写 docstring 有助于他人理解用途,IDE 与文档生成工具也可自动提取。
编写时的检查项
- 同一代码块内缩进是否一致(建议统一为 4 个空格)?
if/for/while行末冒号之后,块内语句是否已缩进?- 长表达式是否用括号包裹以便自然换行?
- 非显然的逻辑是否配有注释或 docstring?
本节说明了 Python 的语句形式、缩进块、注释与 docstring。下一节介绍变量:命名规则、赋值方式与字面量。