X Tutup
# `if`语句 1.`if`语句的的通用格式: ``` if test_expr1: #必选 statement1#必选 elif test_expr2: #可选 statement2 else: #可选 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`:从左到右依次对操作对象求值,停在第一个为真的对象上并返回它,或者当前面所有操作对象为假时返回最后一个操作对象 ![Python中的真假测试](../imgs/python_13_1.JPG) 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
X Tutup