Python 为什么该逻辑函数在选项A中打印7而不在选项B中?

Python 为什么该逻辑函数在选项A中打印7而不在选项B中?,python,Python,为什么选项a)打印x,而选项b)不打印?顺便说一下,这两个操作都应该得到b)的结果 (a) x=7 如果x>3和x3: 如果x符号(&)字符是位运算符。从: x&y 执行“按位和”。如果x和y的对应位为1,则输出的每一位为1,否则为0 如果使用第一个表达式计算表达式x>3&x,则使用的是and的位运算符,而不是和,在7的情况下不能正确打印x。此情况: if x >3 & x<=6 在这种情况下,为了满足您的需要,您可以更简洁地执行以下操作: if 3 < x <

为什么选项a)打印x,而选项b)不打印?顺便说一下,这两个操作都应该得到b)的结果

(a)

x=7
如果x>3和x3:
如果x符号(
&
)字符是位运算符。从:

x&y

执行“按位和”。如果x和y的对应位为1,则输出的每一位为1,否则为0


如果使用第一个表达式计算表达式
x>3&x,则使用的是and的位运算符,而不是
,在7的情况下不能正确打印
x

此情况:

if x >3 & x<=6
在这种情况下,为了满足您的需要,您可以更简洁地执行以下操作:

if 3 < x <= 6:

如果3
(不是
&
,它是二进制和运算符)。
3&x
是3。您的第一个代码是检查
x>3
3@bjorn可能OP的意图实际上是执行逻辑
。但问题是为什么使用&operator时条件为真。@RobertoCaboni更新以反映问题的这一方面,谢谢
x>3&x@ThierryLathuille啊,是的。。。看来我在匆忙回答的过程中完全忽略了这一点!我已经更新以反映正确的逻辑-谢谢!这是唯一正确的答案:
&
的优先级高于

x >3 & x<=6
7 > 3 <= 6
True <= 6
True
x = 7

if x >3 and x<=6:
    print(x)
if x >3 & x<=6
if x > 3 and x <= 6:
if 3 < x <= 6: