Python三目运算符¶
Python中提供的三目运算符类似于其它语言中的?:, 是一个条件运算符:
expr1 if condition else expr2
condition是判断条件, expr1和expr2是两个表达式.
如果condition成立, 就执行expr1, 并把expr1的结果作为整个表达式的结果;
如果condition不成立, 就执行expr2, 并把expr2的结果作为整个表达式的结果.
例如, 现在有两个数字, 我们希望获得其中较大的那一个, 那么可以使用if else语句:
if a > b:
max = a
else:
max = b
使用条件运算符更加简洁:
max = a if a > b else b
上面的语句的含义是:
- 如果
a > b成立, 就把a作为整个表达式的值, 并赋值给变量max;- 如果
a > b不成立, 就把b作为整个表达式的值, 并赋值给变量max.
三目运算符的嵌套¶
Python三目运算符支持嵌套, 如此可以构成更加复杂的表达式.
在嵌套时需要注意if和else的配对, 例如:
a if a>b else c if c>d else d
应该理解为:
a if a>b else (c if c>d else d)
注解
三目运算符虽然可以嵌套, 但是嵌套后通常理解起来比较困难, 所以尽量不要嵌套.