首页 > 解决方案 > 为什么在 Python 中 `50 << 6` 为真,而 `50 >> 6` 为假?

问题描述

我只是在尝试一个简单的 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")

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

标签: python

解决方案


<<并且>>位移运算符,而不是比较运算符。50 >> 60,所以 if 语句评估为假,因为它是的。50 << 6是 3200,因此 if 语句评估为 true,因为它是真实的。

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

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")

推荐阅读