在網上搜了一下,python 的and-or語法與C語言的三目運算符?:有類似的功能。但bool and a or b,當 a 爲假時,不會跟C語言的 bool ? a : b 一樣工作
常用的是把 and-or 封裝成一個函數:
def choose(bool, a, b):
return(bool and [a] or [b])[0]
因爲 [a] 是一個非空列表,它永遠不會爲假。甚至 a 是 0 或 ‘’ 或其它假值,列表[a]爲真,因爲它有一個元素。
在網上搜了一下,python 的and-or語法與C語言的三目運算符?:有類似的功能。但bool and a or b,當 a 爲假時,不會跟C語言的 bool ? a : b 一樣工作
常用的是把 and-or 封裝成一個函數:
def choose(bool, a, b):
return(bool and [a] or [b])[0]
因爲 [a] 是一個非空列表,它永遠不會爲假。甚至 a 是 0 或 ‘’ 或其它假值,列表[a]爲真,因爲它有一個元素。