Skip to main content
 首页 » 编程设计

python之在 python 中使用 OR 将一个数字与多个数字之一进行比较

2025年05月04日20davidwang456

我试图理解为什么 python 在满足 if 条件时打印 false。我错过了什么?请指教

s 
Out[147]: '936100' 
 
if int(s[0:4]) == 9361 | 9363: 
    print "true" 
else: 
    print "false" 
 
false 
 
int(s[0:4]) 
Out[149]: 9361 

请您参考如下方法:

这里发生了一些事情。让我们逐一讨论。

首先是Python的运算顺序问题。按位或运算符 | 在比较运算符 == 之前计算。换句话说,行 if int(s[0:4]) == 9361 | 9363 等同于 if int(s[0:4]) == (9361 | 9363)。

另一方面,我怀疑 | 不是您打算在此处使用的。在此上下文中,| 是 bitwise or运算符,而不是逻辑或。换句话说,它采用 9361 和 9363 的按位或,即 9363。在这种情况下,您应该使用 or 关键字,如下所示:

if int(s[0:4]) == 9361 or int(s[0:4]) == 9363: 

不幸的是,如果不进行多次测试,就无法判断某个对象是否等于一个对象或另一个对象。

如果您希望避免这样做,您可以做的一件事是查看集合 {9361, 9363} 是否包含该值。

if int(s[0:4]) in {9361, 9363}: