2016-06-17 105 views
2

我目前在學習Python 2.7版的過程和所遇到的平等和布爾運算符的Python 2.7布爾運算符邏輯

我的問題是:

爲什麼False and 1FalseTrue and 11

同樣,False or 11但是True or 1True

有人能解釋好心爲什麼發生這種情況

非常感謝

回答

3

返回第一個「falsy」(假,零,空字符串或列表等)價值它看到,或者最終如果沒有人是虛假的,那麼值。其他值甚至沒有被評估,因爲它們不能改變結果。

同樣返回它看到的第一個「truthy」(真,非零,非空字符串或列表等)值(或最後一個如果沒有),並且不評估其餘的部分。

此行爲有時比嚴格僅返回True或False更方便。

+0

謝謝賈森。我錯過了「0」以外的任何數字也可以被視爲「真」。 –

+0

順便說一下,按照上面的邏輯,爲什麼你認爲'False或0'返回'0'。在這種情況下,他們倆實際上都是Falsies,不是嗎? –

+1

@pb_ng請注意,對於'or':「或者同樣返回它所看到的第一個」truthy「值(**或最後一個沒有**)的情況下,答案會顯示」「。 'False或0'中沒有真值,所以最後一個0就是結果。 – user4815162342