语句和语法

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'),会导致LNone

10.Python的语句是逐条运行的,除非遇上控制流语句。

  • 块|语句的边界是自动检测的。缩进定义了块边界,换行定义了语句边界
  • 首行+:+缩进语句定义了复合语句
  • 空白行、空格、注释通常被解释器忽略
  • 文档字符串会被解释器忽略,但是会保存它并由工具显示

11.Python顶层程序代码必须不能有缩进。缩进发生在复合语句的字块中。