前言
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")。