在C語言中有 Y?X:Z一樣的語法,python也需要有易于使用的三元表達式來減少程序員需要輸入的代碼橱健。
if/else 三元表達式
if X:
A = Y
else:
A = Z
可以簡寫成:
A = Y if X else Z
只有X為真的時候返回Y,否則返回Z
and or 三元表達式
and or 得益于python布爾運算的以下特性:
- 任何非零數字 或 非空對象對為真
- 數字零、空對象以及特殊對象None都被認為是假
- 比較和相等測試都會遞歸的應用到數據結構中
- 比較和相等測試會返回 True 或者False
- 布爾and和or運算符會返回真或假的操作對象匾嘱,如
2 and 3
返回3谈况,0 and 3
返回0勺美,
例子
- 2 and 3 or 4 首先運行and,2和3都要判斷且都為真碑韵,因此and運算返回3(真)赡茸,因此不用運行or運算
- 0 and 2 or 4 首先運行and,因為0為假祝闻,所以當and運算判斷到0 處就短路不再判斷2占卧,因此返回0;而因為and運算返回了0(假),因此or運算需要再接著判斷4(真)华蜒,因此返回4辙纬。
用bool()函數實現(xiàn)三元運算
>>>['f', 't'][bool('')]
'f'
>>>['f', 't'][boo('t')]
't'
bool()函數返回0 或者 1