python只有一種三元運(yùn)算符嗎?
三元運(yùn)算符,或許大家都不陌生吧?
但是,python只有一種三元運(yùn)算符嗎?if-else的條件需要放在中間,那能不能像其他編程語(yǔ)言一樣把條件放在前面呢?
接下來(lái)和小編……(bushi
僅代表一些個(gè)人觀點(diǎn),大佬輕噴,謝謝
眾所周知,在Python中是存在“三元運(yùn)算符”的。

但是它的書寫方式是:
E1 if con else E2
而其它語(yǔ)言中的三元運(yùn)算符大多為:
con ? E1 : E2
其實(shí)python中也有類似的運(yùn)算符?;蛟S很多人沒(méi)想到它就是邏輯運(yùn)算符and和or。

這里用了短路求值,當(dāng)條件為真,and返回第二個(gè)操作數(shù);當(dāng)條件為假,and返回條件,由or返回第二個(gè)操作數(shù)。
還能少打一個(gè)字母(大霧
唯一可惜的是&和|不能完全替代and和or:

否則就可以用:
True | 't' & 'f'
和true ? "t" : "f"簡(jiǎn)直一模一樣了
(小聲bb:甚至__and__都只會(huì)返回NotImplemented……)
不過(guò)使用and和or也無(wú)傷大雅,畢竟也是一種書寫方式,還能精簡(jiǎn)代碼

用這種方式可以把語(yǔ)句以外的部分全壓進(jìn)一行。(建議寫注釋)(但是我從來(lái)不寫)
emm就是寫一個(gè)小程序的時(shí)候遇到點(diǎn)問(wèn)題,然后想了想,弄出來(lái)這么個(gè)玩意。之前肯定有人研究過(guò)這東西了,但是我就是想發(fā)一下awa
*僅代表個(gè)人觀點(diǎn),本人python純自學(xué),有錯(cuò)誤之處請(qǐng)指正*