本节书摘来自异步社区《Python参考手册(第4版•修订版)》一书中的第2章,第2.1节,作者David M. Beazley,更多章节内容可以访问云栖社区“异步社区”公众号查看。
第2章 词法约定和语法
本章介绍Python程序的词法和语法约定。本章涉及的主题包括行结构、语句分组、保留字、字面量、运算符、标记和源代码编码。
2.1 行结构和缩进
程序中的每条语句都以换行符结束。使用续行符()可将长语句分为几行,如下所示:
a = math.cos(3 * (x - n)) + \
math.sin(3 * (y - n))
三引号字符串、列表、元组或字典的定义如果跨越多行,是可以不使用续行符的。一般来说,包含在圆括号(...)、方括号[...]、大括号{...}或三引号中的任意程序部分都可以放在多行上,而不需要使用续行符,因为它们清晰地表示出了定义的开始和结束。
缩进用于表示不同的代码块,如函数、条件语句、循环和类的主体。代码块中首条语句的缩进量可以是任意的,但整个代码块中的缩进必须保持一致,例如:
if a:
statement1 # 缩进一致,正确
statement2
else:
statement3
statement4 # 缩进不一致,错误
如果函数、条件语句、循环或类的主体较短,只包含一条语句,就可以将其放在同一行上,例如:
if a: statement1
else: statement2
要表示一个空的主体或代码块,可使用pass语句,例如:
if a:
pass
else:
statements
尽管可以用制表符进行缩进,但并不鼓励这样做。Python编程社区的首选是用空格(而且也鼓励你这样做)。遇到制表符时,系统会将其转换为移到下一个为8倍数的列所需的空格量(例如,如果一个制表符出现在第11列中,那么系统会填充足够多的空格以移到第16行)。如果运行Python时使用-t选项,那么在同一程序代码块中发现有制表符和空格混用的情况时,就会显示警告信息。使用-tt选项可将这些警告信息转换为TabError异常。
要在一行上放置多条语句,可以使用分号(;)隔开各条语句。如果一行上只有一条语句,也可以使用分号结尾,但这是不必要的。
#
字符表示此行的内容都是注释,但出现在引号字符串中的#
号无此作用。
最后,除非是在交互模式下运行,否则解释器将忽略所有空白行。在交互模式下,如果输入一条多行语句,空白行即表示输入结束。