標籤:條件判斷 visio 因此 條件 python 情況 color nic als
三元運算子
三元運算子通常在Python裡被稱為條件運算式,這些運算式基於真(true)/假(false)的條件判斷,在Python 2.4以上才有了三元操作。
下面是一個虛擬碼和例子:
虛擬碼:
#如果條件為真,返回真 否則返回假condition_is_true if condition else condition_is_false
例子:
is_fat = Truestate = "fat" if is_fat else "not fat" 注意這個
它允許用簡單的一行快速判斷,而不是使用複雜的多行if語句。 這在大多數時候非常有用,而且可以使代碼簡單可維護。
另一個晦澀一點的用法比較少見,它使用了元組,請繼續看:
虛擬碼:
#(返回假,返回真)[真或假](if_test_is_false, if_test_is_true)[test]
例子:
fat = Truefitness = ("skinny", "fat")[fat]print("Ali is", fitness)#輸出: Ali is fat
這之所以能正常工作,是因為在Python中,True等於1,而False等於0,這就相當於在元組中使用0和1來選取資料。
上面的例子沒有被廣泛使用,而且Python玩家一般不喜歡那樣,因為沒有Python味兒(Pythonic)。這樣的用法很容易把真正的資料與True/False弄混。
另外一個不使用元組條件運算式的緣故是因為在元組中會把兩個條件都執行,而 if-else 的條件運算式不會這樣。
例如:
condition = Trueprint(2 if condition else 1 / 0)#輸出: 2print((1 / 0, 2)[condition])#輸出ZeroDivisionError異常
這是因為在元組中是先建資料,然後用True(1)/False(0)來索引到資料。 而if-else條件運算式遵循普通的if-else邏輯樹狀結構, 因此,如果邏輯中的條件異常,或者是重計算型(計算較久)的情況下,最好盡量避免使用元組條件運算式。
python 三元運算