【Intermediate Python】六、三元运算符

三元运算符通常在 Python 里被称为条件表达式,这些表达式基于真 (True)/ 假(False) 的条件判断,在 Python2.4 以上才有了三元操作。

下面是一个伪代码和例子:
伪代码

# 如果条件为真,返回真,否则返回假
condition_is_true if condition else condition_is_false

例子

is_fat = True
state = "fat" if is_fat else "not fat"

它允许用简单的一行快速判断,而不是使用复杂的多行 if 语句。这在大多数时候非常有用,而且可以使代码简单可维护。

另一个晦涩一点的用法比较少见,它使用了元组,请继续看:
伪代码

# (返回假, 返回真)[真或假]
(if_test_is_false, if_test_is_true)[test]

例子

fat = True
fitness = ("skinny", "fat")[fat]
print("Ali is", fitness)
# 输出: Ali is fat

这之所以能正常工作,是因为在 Python 中,True 等于 1(True == 1),而 False 等于 0,这就相当于在元组中使用 0 和 1 来选取数据。

上面的例子没有被广泛使用,而且 Python 用户一般不喜欢那样,因为没有 Python 的味道(Pythonic)。这样的用法很容易把真正的数据与 true/false 弄混。