注意:python并沒有像java等語言得三元表達(dá)式勒魔,但是提供了相似得實(shí)現(xiàn)方法
舉個例子(雖然例子有更好得實(shí)現(xiàn)方式鞋诗,但是能夠說明問題挺峡,不需要太糾結(jié)):
a=5
b=1
if a>=b:
c=a
else:
c=b
print(c)
輸出 5
這個例子只是簡單得將a和b中較大得賦值給c,并打印出來,這樣做顯然可以,但是代碼先得臃腫豁陆,接下來我們用python得三元表達(dá)式替代方式實(shí)現(xiàn)
a=5
b=1
c=a if a>=b else b
print(c)
這次變量c得賦值過程變得清晰而簡單,代碼得可讀性也大大增加了
通過上面得例子可以看到大致得方案實(shí)現(xiàn)方式:
true_part if condition else false_part
如果condition為真,則返回true_part,否則返回false_part
來個更簡單易懂得例子:
>>> 'it is true' if True else 'it is false'
'it is true'
>>> 'it is true' if False else 'it is false'
'it is false'
第二種實(shí)現(xiàn)(不推薦):
原型:
condition and [true_part] or [false_part][0]
例:
>>> (True and ['it is true'] or ['it is false'])[0]
'it is true'
>>> (False and ['it is true'] or ['it is false'])[0]
'it is false'
說明:
這里我們將true_part和false_part部分都放到列表中炫掐,并且這個列表只有這一個元素,得到結(jié)果后又將列表中得true_part或者false_part部分取出來
這么做得原因是如果true_part部分本身就為false,則即使condition為True也不會取出true_part任柜,但是把它放到列表中無論true_part是否為真卒废,列表始終為真,最后再把元素取出來即可
#演示錯誤用法得到得結(jié)果宙地,并不會取出False
>>> True and False or 'it is false'
'it is false'