2. 词法分析
Python 程序由一个 解析器 读取。输入到解析器的是一个由 词法分析器 所生成的 形符 流,本章将描述词法分析器是如何将一个文件拆分为一个个形符的。
Python 会将读取的程序文本转为 Unicode 码点;源文件的文本编码可由编码声明指定,默认为 UTF-8,详情见 PEP 3120。如果源文件无法被解码,将会引发 SyntaxError
。
2.1. 行结构
一个 Python 程序可分为许多 逻辑行。
2.1.1. 逻辑行
逻辑行的结束是以 NEWLINE 形符表示的。语句不能跨越逻辑行的边界,除非其语法允许包含 NEWLINE (例如复合语句可由多行子语句组成)。一个逻辑行可由一个或多个 物理行 按照明确或隐含的 行拼接 规则构成。
2.1.2. 物理行
物理行是以一个行终止序列结束的字符序列。在源文件和字符串中,可以使