说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python编程语言的语法是定义如何编写Python程序的一组规则。Python程序被划分为多个逻辑行,每个逻辑行都以标志 NEWLINE 终止。逻辑线是由一条或多条物理行创建的。
程序源文件如同一篇文章一样,是由一行一行的句子组成。这些行我们分为逻辑行和物理行,代码是按物理行一行一行执行的,但解释代码的意思是按逻辑行的。
NEWLINE 形符表示结束逻辑行。语句不能超出逻辑行的边界,除非句法支持 NEWLINE (例如,复合语句中的多行子语句)。根据显式或隐式 行拼接 规则,一个或多个 物理行 可组成逻辑行。
物理行是一序列字符,由行尾序列终止。源文件和字符串可使用任意标准平台行终止序列 - Unix ASCII 字符 LF (换行)、 Windows ASCII 字符序列 CR LF (回车换行)、或老式 Macintosh ASCII 字符 CR (回车)。不管在哪个平台,这些形式均可等价使用。输入结束也可以用作最终物理行的隐式终止符。
嵌入 Python 时,传入 Python API 的源码字符串应使用 C 标准惯例换行符(\n
,代表 ASCII 字符 LF, 行终止符)。
物理行是以行尾序列结束的字符序列(在windows中,它被称为CR LF或回车,后面跟着换行符,在Unix中,它称为LF或换行符)
一行只包含空格、制表符、表单提要(可能是注释),称为空行,Python解释器会忽略它。
只包含空格符、制表符、换页符、注释的逻辑行会被忽略(即不生成 NEWLINE 形符)。交互模式输入语句时,空白行的处理方式可能因读取 - 求值 - 打印循环(REPL)的具体实现方式而不同。标准交互模式解释器中,完全空白的逻辑行(即连空格或注释都没有)将结束多行复合语句。
可以将多个物理行,拼接为一个逻辑行,有以下方式进行拼接:
两个及两个以上的物理行可用反斜杠(\)拼接为一个逻辑行,规则如下:以不在字符串或注释内的反斜杠结尾时,物理行将与下一行拼接成一个逻辑行,并删除反斜杠及其后的换行符。例如:
if 1900 < year < 2100 and 1 <= month <= 12 \
and 1 <= day <= 31 and 0 <= hour < 24 \
and 0 <= minute < 60 and 0 <= second < 60: # Looks like a valid date
return 1
以反斜杠结尾的行,不能加注释;反斜杠也不能拼接注释。除字符串字面值外,反斜杠不能拼接形符(如,除字符串字面值外,不能用反斜杠把形符切分至两个物理行)。反斜杠只能在代码的字符串字面值里,在其他任何位置都是非法的。
Python 代码中可以使用“;”将多个逻辑行组合为一个物理行,例如:
a = 1; b = 2; c = 3; print(a, b, c)
x, y = 2, 1
if x == 4: print(x, y); x, y = y, x
if True: print "Welcome back"; n =10
圆括号、方括号、花括号内的表达式可以分成多个物理行,不必使用反斜杠。例如:
month_names = ['Januari', 'Februari', 'Maart', # These are the
'April', 'Mei', 'Juni', # Dutch names
'Juli', 'Augustus', 'September', # for the months
'Oktober', 'November', 'December'] # of the year
# 集合
my_set = {
1, 2, 3,
4, 5, 6,
}
# 函数传参
result = function(
a=1,
b=2,
'd',
)
隐式行拼接可含注释;后续行的缩进并不重要;还支持空的后续行。隐式拼接行之间没有 NEWLINE 形符。三引号字符串支持隐式拼接行(见下文),但不支持注释。
逻辑行开头的空白符(空格符和制表符)用于计算该行的缩进层级,决定语句组块。
说见 缩进。
注释以井号 (#) 开头,在物理行末尾截止。注意,井号不是字符串字面值。除非应用隐式行拼接规则,否则,注释代表逻辑行结束。句法不解析注释。
详见 Python 的注释 。
除非在逻辑行开头或字符串内,空格符、制表符、换页符等空白符都可以分隔形符。要把两个相连形符解读为不同形符,需要用空白符分隔(例如,ab 是一个形符,a b 则是两个形符)。
除 NEWLINE、INDENT、DEDENT 外,还有 标识符、关键字、字面值、运算符 、分隔符 等形符。 空白符(前述的行终止符除外)不是形符,可用于分隔形符。存在二义性时,将从左至右,读取尽量长的字符串组成合法形符。
更新时间:May 7, 2024, 10:54 a.m. 标签:python 代码