Python中并不像C#中的條件運算符那樣使用簡潔的符號來實現三元運算的,而是借助了if-else語句。換句話說,Python其實沒有提供真正意義上的三元條件運算符,而是借助了if-else來實現,但其語法格式比if-else分支語句要簡潔很多。
在Python2.5中,Python提供了該項功能,官方文檔把其稱之為條件表達式(conditional expression)。
其語法格式可以使用下面的形式來描述:
[when_true] if [condition] else [when_false]
在語法中,condition一般是個邏輯表達式或邏輯值。開始執行時,先判斷[condition]的值,如果其值為True,則返回[when_true]的值,否則返回[when_false]的值。
下面的程序是判斷一個數x是奇數還是偶數:
x = 133
oddOrEven = "偶數" if x % 2 == 0 else "奇數"
print("{0}是{1}".format(x, oddOrEven))
程序輸出如下:
133是奇數
當然,上面的程序比較簡潔,但是如果對該用法不清楚的話,可能不知其意,即可讀性比較差。
上面這段程序實際上相當于下面這種情形:
x = 133
if x % 2 == 0:
oddOrEven = "偶數"
else:
oddOrEven = "奇數"
print("{0}是{1}".format(x, oddOrEven))
上面程序的輸出結果與前一個相同。
在Python中,這種三元語句可以嵌套使用。
#嵌套使用
x = 13
y = 14
oddeven = "x是偶數" if x % 2 == 0 else "x是奇數,y是偶數" /
if y % 2 == 0 else "全是奇數"
print(oddeven)
程序輸出如下:
x是奇數,y是偶數
要注意,上面的程序只是演示嵌套使用的方法,程序本身并不能準確判斷出x和y的奇偶情況。
Python中的元組也支持類似的三元運算情況。其語法為:
(when_false, when_true)[condition]
要注意元組中的第一個值是為False時的輸出,第二個值是為True時的輸出。
x = 124
oddeven = ("奇數", "偶數")[x % 2==0]
print(oddeven)
其輸出結果為:
偶數
在掌握了Python三元運算的使用技巧后,我們可以靈活使用這種方法,以減少代碼量。
新聞熱點
疑難解答