" 本文字数:578 字 ||
阅读时间:1.5
分钟 "
三元运算符
三元运算符通常在Python⾥被称为条件表达式
这些表达式基于真(true)/假(not)的条件判 断
在Python 2.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,⽽False等于0,
这就相当于在元组 中使⽤0和1来选取数据。
上⾯的例⼦没有被⼴泛使⽤,因为没有Python味⼉ (Pythonic)。
这样的⽤法很容易把真正的数据与 True / False 弄混。
另外⼀个不使⽤元组条件表达式的缘故是因为在元组中会把两个条件都执⾏,
⽽ if - else 的条件表达式不会这样。
例如:
condition = True print(2 if condition else 1/0) #输出: 2
print((1/0, 2)[condition]) #输出ZeroDivisionError异常
这是因为在元组中是先建数据,然后⽤True(1)/False(0)来索引到数据。
⽽ if - else条件表 达式遵循普通的 if - else 逻辑树, 因此,如果逻辑中的条
件异常,或者是重计算型(计 算较久)的情况下,最好尽量避免使用元组条
件表达式。