python 三元運算

來源:互聯網
上載者:User

標籤:條件判斷   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 三元運算

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.