-2

如果你看这个:-

>>>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

1 回答 1

3

和运算or短路。当结果给定时,他们会提前返回。and

因为or这意味着如果第一个表达式是True,那么查看第二个表达式是没有意义的,因为这无关紧要:

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

也是如此and,但仅当第一个值计算为False; 在这种情况下,表达式总是会计False算出第二个表达式的结果:

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

请参阅布尔表达式

表达式x and y首先计算x; 如果x为假,则返回其值;否则,y评估并返回结果值。

表达式x or y首先计算x; 如果x为真,则返回其值;否则,y评估并返回结果值。

于 2013-03-25T17:52:13.487 回答