语句和语法
1.所有Python的复合语句,都是以冒号:
结尾,下一行缩进开始进入代码块。同一个级别代码块的缩进形式相同
2.测试(if
|while
)中的一对圆括号()
是可选的
3.可以省略行尾的分号;
4.代码块的范围由缩进来决定。同一个块中,所有语句向右缩进相同的距离(块内语句垂直左对齐)。
- 缩进可以用空格或者制表符。不应该在同一段代码中混合使用制表符和空格
- 若缩进出现不一致,则会导致语法错误
5.若将多行语句列入一行,则必须用分号隔离;
6.任何在括号中的多行语句都视为一行。括号包括圆括号()
,中括号[]
,大括号{}
。也可以用反斜线\
转义换行符来跨多行
7.当复合语句不包含任何复合从句时,复合语句的主体可以出现在Python首行冒号之后:
if x>y : print(x)
8.变量名由:下划线或字母开头,后面接任意字母、数字、下划线
- 以单下划线开头的变量名不会被
from module import *
语句导入,如变量名_x
- 前后双下划线的变量名是系统预定义的,对解析器有着特殊的意义,如变量名
__x__
- 仅前面有双下划线的变量名视为类的本地变量,如变量名
__x
9.表达式可以作为语句,但是其结果不会存储。因此只有当表达式工作产生副作用时,这种用法才有意义。
表达式可以作为语句,但是语句不能作为表达式。如 Python中不支持(C和C++可以,因为在C/C++中赋值表达式产生左值):
if( a=file.read() ): pass
- 列表的原地修改表达式返回
None
对象,因此以下的意图不正确:L=L.append('a')
,会导致L
为None
。
10.Python的语句是逐条运行的,除非遇上控制流语句。
- 块|语句的边界是自动检测的。缩进定义了块边界,换行定义了语句边界
- 首行+
:
+缩进语句定义了复合语句 - 空白行、空格、注释通常被解释器忽略
- 文档字符串会被解释器忽略,但是会保存它并由工具显示
11.Python顶层程序代码必须不能有缩进。缩进发生在复合语句的字块中。