我寫程序很喜歡用三元運算符,但是在python中居然不支持,有點鬱悶,查了下資料,發現還是有解決方案的。
比如,一個這樣的函數:
function trans(v) { return (v==0)?1:v; }
嘖嘖,三元運算符看着就是漂亮,不知道python爲什麼不支持。
下面看一下python的解決方案一:
def trans(v):
return 1 if v==0 else v
也就是if else語句的簡寫形式,意思一看就明白,看起來還不錯。
下面是解決方案二:
def trans(v):
return v==0 and 1 or v
用到了與或運算符的特性。
解釋一下:如果v等於0爲true,則跟1做與運算,爲true,則不進行後面的或運算,直接返回1;如果v等於0爲false,則跟1做與運算,爲false,繼續進行或運算,返回v。