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