如果你看这个:-
>>>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
两者几乎相似。那么它们有什么不同呢?
如果你看这个:-
>>>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
两者几乎相似。那么它们有什么不同呢?
和运算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
评估并返回结果值。