2024-04-26 02:56:32 发布
网友
我在做一些测试,当我尝试:
len(pin) == (4 or 6)
一半的测试失败了
但是:
(len(pin) == 4 or len(pin) == 6)
所有的测试都通过了
我无法理解这两者之间的区别。 pin通常是一个类似1234或12345的数字
1234
12345
这是因为根据优先级规则,在第一个条件中首先计算右侧表达式,即
这里,首先计算(4 or 6),并返回4(在某些语言中为true)。现在,只有在length实际为4的情况下才返回true
(4 or 6)
length
您的第二个条件按预期工作,因为它分别将长度与4和6进行比较,然后对这两个布尔值应用or
or
这是因为根据优先级规则,在第一个条件中首先计算右侧表达式,即
len(pin) == (4 or 6)
这里,首先计算
(4 or 6)
,并返回4(在某些语言中为true)。现在,只有在length
实际为4的情况下才返回true您的第二个条件按预期工作,因为它分别将长度与4和6进行比较,然后对这两个布尔值应用
or
相关问题 更多 >
编程相关推荐