Python三目運算符(三元運算符)用法詳解


前言

Python語言不像Java、JavaScript等這些語言有這樣的三目運算:

判段的條件?條件為真時的結果:條件為假時的結果

但是Python也有自己的三目運算符:

條件為真時的結果 if 判段的條件 else 條件為假時的結果 

舉例

假設現在有兩個數字,我們希望獲得其中較大的一個,那么可以使用 if else 語句,例如:

if a>b:
    max = a;
else:
    max = b;

但是 Python 提供了一種更加簡潔的寫法,如下所示:

max = a if a>b else b

 max = a if a>b else b 的含義是:

  • 如果 a>b 成立,就把 a 作為整個表達式的值,並賦給變量 max;
  • 如果 a> b 不成立,就把 b 作為整個表達式的值,並賦給變量 max。

總結

這是一種類似於其它編程語言中三目運算符? :的寫法。Python 是一種極簡主義的編程語言,它沒有引入? :這個新的運算符,而是使用已有的 if else 關鍵字來實現相同的功能。

使用 if else 實現三目運算符(條件運算符)的格式如下:

exp1 if contion else exp2

condition 是判斷條件,exp1 和 exp2 是兩個表達式。如果 condition 成立(結果為真),就執行 exp1,並把 exp1 的結果作為整個表達式的結果;如果 condition 不成立(結果為假),就執行 exp2,並把 exp2 的結果作為整個表達式的結果。

三目運算符的嵌套

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 )

【實例】使用 Python 三目運算符判斷兩個數字的關系:

a = int( input("Input a: ") )
b = int( input("Input b: ") )
print("a大於b") if a>b else ( print("a小於b") if a<b else print("a等於b") )

運行結果:

Input a: 45
Input b: 100
a小於b

該程序是一個嵌套的三目運算符。程序先對 a>b 求值,如果該表達式為 True,程序就返回執行第一個表達式 print("a大於b"),否則將繼續執行 else 后面的內容,也就是:

 ( print("a小於b") if a<b else print("a等於b") ) ,進入該表達式后,先判斷 a<b 是否成立,如果 a<b 的結果為 True,將執行 print("a小於b"),否則執行 print("a等於b")。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM