全部博文(471)
分类: Python/Ruby
2013-03-04 11:06:39
bool ? a : b 表达式,这个表达式当 bool 为真时计算为 a,其它值则为 b。
>>> a = "first"
>>> b = "second"
>>> 1 and a or b
'first'
>>> 0 and a or b
'second'
--这个语法看起来与C语言中的 bool ? a : b 相似。第一部分将在布尔环境中进行计算,它可以是任意Python表达式。如果计算为真,整个表达式的值为 a。
>>> b = "second"
>>> 1 and a or b
'second'
因为 a 是一个空串,空串在一个布尔环境中被Python看成假值,这个表达式将“失败”,且返回 b 的值。如果你不将它想象成象 bool ? a : b 一样的语法,而把它看成纯粹的布尔逻辑,这样的话就会得到正确的理解。 1 是真,a 是假,所以 1 and a 是假。假 or b 是 b。
>>> a = ""