逐位AND ini python进行比较


>>> i=5
>>> i>4 & i<5
True
>>> i>4 and i<5
False

我不明白这里是如何使用位AND的?第二个语句可以理解为5不小于5,因此它返回false。有人能解释一下第一句话吗?

我在python shell中做了一些实验,我相信我知道这里发生了什么。我跑了:

>>> 5>4 & 5<5
True
>>> 1 & 0
0
>>> True & False
False
>>> (5>4) & (5<5)
False
>>> (5>4 & 5)<5
True

所以我相信正在发生的是它正在执行(5>4 & 5)<5而不是(5>4) & (5<5)

&适用于>适用于之前

  • a>b和a>c,解析为(a>b(和(a<c(

  • a>b&a>c,它被解析为a>(b&a(>c

最新更新