python中and和or的使用方法

今天看了一个源代码,甚是对python不解,于是查了下资料,只是纠正下网上的老兄的解释

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

or从左到右计算表达式。返回第一个为真的值。

IDLE 1.2.4
>>>'a'and'b'# 等价于if( 'b' ) return 'b' return 'a' 从右向左
'b'
>>>''and'b'#...
''
>>>'a'or'b'#等价于if( 'a' )return 'a' return 'b' 从左向右
'a'
>>>''or'b'
'b'
类似三目表达式的使用方法:bool? a : b
>>> a ='first'
>>> b ='second'
>>>1and a or b   # 等价于 if( 'a' )return 'a' return 'b'  的情况 从左向右
'first'
>>>0and a or b   # 等价于	 a and b 的情况 if( 'b' ) return 'b' return 'a' 从右向左
'second'
>>> a =''
>>>1and a or b   # a为假时。则出现故障
'second'
>>>(1and[a]or[b])[0]# 安全使用方法,由于[a]不可能为假,至少有一个元素
''
>>>
posted @ 2015-12-20 14:03  mengfanrong  阅读(2967)  评论(0编辑  收藏  举报