2013-03-25 47 views
-2

如果你看看這個: -Python中的````和`或`語句有什麼不同?

>>>a = "hello" 
>>>b = "world" 
>>>print a and b 
world 
>>>print b and a 
hello 

這: -

>>>a = "hello" 
>>>b = "world" 
>>>print a or b 
hello 
>>>print b or a 
world 

兩者都幾乎相同。那他們有什麼不同?

+4

最後一個是錯字,不是嗎?爲了得到這個輸出,它應該是'print b or a'。 – 2013-03-25 17:52:43

+0

是的。抱歉。要編輯它。 – confused 2013-03-25 17:54:04

回答

3

orand運營商短路。當結果是給定的時候,他們會早早返回。

對於or這意味着,如果第一個表達式爲True,再有就是看第二表達無點作爲它並不重要:

>>> 'a' or 'b' 
'a' 
>>> False or 'b' 
'b' 

同樣爲and,但只有當第一個值評估爲False;在這種情況下,表達的是總是要評估爲False無論第二個表達式會來:

>>> False and 'b' 
False 
>>> 'a' and 'b' 
'b' 

Boolean expressions

表達x and y首先評估x;如果x爲假,則返回其值;否則,將評估y並返回結果值。

表達式x or y首先評估x;如果x爲真,則返回其值;否則,將評估y並返回結果值。

+0

明白了。謝謝。 – confused 2013-03-28 06:31:37

相關問題