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
:从左到右依次对操作对象求值,停在第一个为真的对象上并返回它,或者当前面所有操作对象为假时返回最后一个操作对象
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