以下是使用“&”和“and”条件运算符尝试的不同场景及其结果。 (使用Python 2.7)
- 使用“&”运算符:
- 使用“与”运算符:
想知道为什么两个条件运算符表现出不同的行为?
用真实场景进行解释会很有帮助。
提前致谢。
&
is not条件运算符。它代表按位和 https://wiki.python.org/moin/BitwiseOperators。不仅是不同的运营商,而且运算符优先级 https://docs.python.org/3/reference/expressions.html#operator-precedence是不同的 (and
在下面>
while &
是上面)。
首先是一个例子:
>>> 1 and 2
2
>>> 1 & 2
0
现在让我们分析一下您的案例:
>>> point = 1
>>> score = 2
>>> point == 1 & score > 0
现在运算符优先级开始生效,最后一行相当于
>>> point == (1 & score) > 0
注意==
and >
具有同等优先权。那么让我们评估一下:
>>> 1 & score
0
>>> point == 0 > 0
最后一行相当于(point == 0) > 0
(当运算符具有相同的优先级时,您只需从左到右)。我们来评价一下:
>>> point == 0
False
>>> False > 0
False
总而言之
>>> point == 1 & score > 0
False
您现在能详细分析一下您对第二个声明的评价吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)