python有几种类型的复合语句:if、for、while、def、class、try/except、with/as等。
这些复合类型的语句在编写时,要遵循python的语法风格:
1.冒号结尾复合语句的声明,如if expr:、def f():
2.通过缩进数量决定代码块层次,同级别的代码块缩进数量相同也就是通过缩进来取代其它语言中的{}表示的代码块层次
3.代码体部分缩进,缩进数量随意,但同一层次的代码块缩进数量必须相同
4.如果代码体部分只有一个语句,可以直接放在声明行冒号的后面,如if expr: print('a')
5.可以使用空格或制表符进行缩进,但缩进同一层次时,不要混用空格或制表符
6.允许这些复合语句的声明行部分的表达式不使用括号包围,但使用括号也不会错,使用括号是为了确保表达式的优先级
7.python中的括号类型(如小括号、中括号、大括号)都可以让代码换行书写,也就是续行。虽然\也有效,但不建议。
例如:
1 if a > 3:2 print('hello world1')3 print('hello world2')4 else:5 print('hello world else')
上面if和else位于同一层次的全局(文件)代码块,if的主分支两个语句位于同一层次的代码块(缩进相同)。在其他语言中,对等的写法大概如下:1 if (a > 3) {2 print('hello world1')3 print('hello world2')4 } else {5 print('hello world else')6 }
python中,条件表达式部分加上括号也没问题:
1 if (a>3):2 ...
如果代码体只有单个语句,代码体可以直接放在冒号后面。例如:1 if a > 3:print('a')2 def f():print('a')3 class F:pass
括号类型包围的内容,包括列表的中括号[]、集合或字典的大括号{}、元组或表达式或包围函数参数的小括号(),它们可以随意换行。
例如:
1 a = 'aaa' + 'bbb'2 a = ('aaa' + 3 'bbb')4 5 L = [11,22,33,44]6 L = [11,22,7 33,44]89 D = {'k1':'v1', 'k2':'v2', 'k3':'v3'}10 D = {'k1':'v1',11 'k2':'v2',12 'k3':'v3'}1314 if a > 3: print(a)15 if (a >16 3):print(a)