From 《dive into python》

python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。

or也是从左到有计算表达式,返回第一个为真的值。
IDLE 1.2.4
>>>'a'and'b'
'b'
>>>''and'b'
''
>>>'a'or'b'
'a'
>>>''or'b'
'b'
类似三目表达式的用法:bool? a : b
>>> a ='first'
>>> b ='second'
>>>1and a or b # 等价于 bool = true时的情况
'first'
>>>0and a or b # 等价于 bool = false时的情况
'second'
>>> a =''
>>>1and a or b # a为假时,则出现问题
'second'
>>>(1and[a]or[b])[0]# 安全用法,因为[a]不可能为假,至少有一个元素
''
>>>

 

posted on 2013-01-19 13:40  风生水起  阅读(70445)  评论(3编辑  收藏  举报