if语句
1.if语句的的通用格式:
if test_expr1: #必选statement1#必选elif test_expr2: #可选statement2else: #可选statement3
- 注意
if、elif、else的缩进一致 - 除了开头的
if以及关联的子句外,elif、else均可选
2.Python中多路分支必须写成一系列的if/elif测试,因为Python中没有switch-case语句
字典也可以执行多路分支的逻辑,如:
mydict={'a':func1,'b':func2}choice='a'print(mydict[choice])
3.Python中的真值测试:
- 任何非0数字或者非空对象为
True,数字0、空对象(如空列表,空字典、空元组、空set、空字符串)、None对象为False - 比较、相等测试会递归地应用在嵌套的数据结构中,他们返回
True或False 布尔
and和or运算符会返回真或假的操作对象,而不是True或Flase,并且它们是短路计算and:从左到右依次对操作对象求值,停在第一个为假的对象上并返回它,或者当前面所有操作对象为真时返回最后一个操作对象or:从左到右依次对操作对象求值,停在第一个为真的对象上并返回它,或者当前面所有操作对象为假时返回最后一个操作对象
4.Python支持if|else三元表达式:Y if X else Z:
当X为真时,表达式的值为Y;当X为假时,表达式的值为Z。
注意这里为短路计算,并不会同时对Y和Z求值。
- 三元表达式
X? Y:Z也能得到同样的效果 - 还有一种模拟方法:
[Z,Y][bool(X)]。但是它会同时对Z、Y求值,可能会有副作用。bool(X)将X转换成对应的1或者0
