今天看了一個源代碼,甚是對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]不可能為假,至少有一個元素 '' >>>