为什么“或”仅在python中使用第一个值?

时间:2018-10-09 16:26:55

标签: python

Cloud Datastore

如果输入此代码,您将得到b = 'a' print(b==('b' or 'a')) 。 但是,如果您这样更改顺序:

False

您得到b = 'a' print(b==('a' or 'b'))

那么,为什么这段代码中的True只考虑两者的第一个值? 我认为上面的代码也应该返回or

2 个答案:

答案 0 :(得分:3)

尝试在python REPL中评估以下表达式:

'a' or 'b'

这会给'a',因为or运算符发生短路;也就是说,它返回找到的第一个真实参数,在这种情况下为'a''a''b'都是真实的,因此您只需要获得首先输入的任何一个即可。

答案 1 :(得分:1)

如果我正确理解您的代码,您可能想写:

b = 'a'
print(b in ('a', 'b'))

这将检查b是否等于'a''b'之一。