在网上搜了一下,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]为真,因为它有一个元素。