基本OR差异

时间:2017-05-08 05:41:30

标签: python

当我尝试时,我正在做一些测试:

len(pin) == (4 or 6) 

一半的测试失败了。

但是:

(len(pin) == 4 or len(pin) == 6)

所有测试都通过了。

我无法理解这两者之间的区别。 pin通常是123412345之类的数字。

1 个答案:

答案 0 :(得分:2)

这是因为根据优先规则,在你的第一个条件中首先评估右手边的表达,即

len(pin) == (4 or 6)

此处,首先评估(4 or 6)并返回4(或某些语言中为true)。现在,只有那些情况在length实际为4的情况下返回true。

你的第二个条件按预期工作,因为它将长度分别比较为4和6,然后在两个布尔值上都应用or