Skip to main content
 首页 » 编程设计

python之为什么在 Python 中 `50 6` 为真,而 `50 >> 6` 为假

2025年05月04日19emanlee

我只是在尝试一个简单的 if 语句,但它没有按预期工作。是我有错误还是我不知道 if 语句的功能?

代码是:

i = 50 
n = 6 
 
if i >> n: 
  print("I is greater") 
elif i << n: 
  print("I is lesser") 
elif i == n: 
  print("I and N are same") 
else: 
  print("no result") 

即使我输入了更大或相等的值,输出也是“我更小”。请帮助我了解这是如何工作的。

请您参考如下方法:

<<和 >>是bitshift operators ,而不是比较运算符。 50 >> 6是0 , 因此 if 语句评估为 false 因为它是 falsy . 50 << 6是 3200,因此 if 语句的计算结果为真,因为它是 truthy .

此代码可能会按照您“期望”的方式工作

i = 50 
n = 6 
 
if i > n: 
  print("I is greater") 
elif i < n: 
  print("I is lesser") 
elif i == n: 
  print("I and N are same") 
else: 
  print("no result")