Python中這種行爲的解釋是什麼?Python「and」操作符ints
a = 10
b = 20
a and b # 20
b and a # 10
a and b
計算結果爲20,而b and a
計算結果爲10是正整數等同於真實的嗎?爲什麼它評估到第二個值?因爲它是第二?
Python中這種行爲的解釋是什麼?Python「and」操作符ints
a = 10
b = 20
a and b # 20
b and a # 10
a and b
計算結果爲20,而b and a
計算結果爲10是正整數等同於真實的嗎?爲什麼它評估到第二個值?因爲它是第二?
的documentation解釋了這個相當不錯:
表達式
x and y
首先評估x
;如果x
爲假,則返回其值;否則,將評估y
並返回結果值。
和or
類似,這可能會成爲你嘴脣上的下一個問題。
表達式
x or y
首先評估x
;如果x
爲真,則返回其值;否則,將評估y
並返回結果值。
在蟒一切不是無,0,假 「」,[],(),{}爲True
a和b被readed爲真時真在這種情況下 b的相同和
和是在這種情況下,需要第一個值
編輯:不全是在評論
見docs:
x and y if x is false, then x, else y
非零整數被視爲布爾值true,所以你得到完全的文檔中描述的行爲:
>>> a = 10
>>> b = 20
>>> a and b
20
>>> b and a
10
通過「第一」你意思是「第二」? – 2012-02-15 18:26:13
我不認爲這是「取」第一個價值。我認爲它正在評估表達式中的第二個值。任何人都可以指出一個解釋這個的資源嗎? (謝謝戴夫!) – 2012-02-15 18:26:55
這不太對。例如'[]'是'假'。通過調用Python 2中的'__nonzero__'或Python 3中的__bool__'完成評估。 – Dougal 2012-02-15 18:27:16