Python 使用按位AND而不是AND运算符时不获取输出背后的逻辑
你能用Python表达清楚吗Python 使用按位AND而不是AND运算符时不获取输出背后的逻辑,python,bitwise-and,Python,Bitwise And,你能用Python表达清楚吗 i = 2 if i<3 and i>1: print('its ok') i=2 如果i1: 打印(‘没问题’) 输出:“没问题”------>这里没问题 但是当我要使用按位AND而不是AND时,代码已经执行,但输出中没有任何内容 i = 2 if i<3 & i>1: print('its ok') i=2 如果i1: 打印(‘没问题’) 输出:nothing----->为什么???您试图使用位AND(&)执行
i = 2
if i<3 and i>1:
print('its ok')
i=2
如果i1:
打印(‘没问题’)
输出:“没问题”------>这里没问题
但是当我要使用按位AND而不是AND时,代码已经执行,但输出中没有任何内容
i = 2
if i<3 & i>1:
print('its ok')
i=2
如果i1:
打印(‘没问题’)
输出:nothing----->为什么???您试图使用位AND(&)执行逻辑AND(&&)操作 应该是
if i<3 && i>1:
print('its ok')
如果i1:
打印(‘没问题’)
您正在尝试使用位AND(&)执行逻辑AND(&&)操作
应该是
if i<3 && i>1:
print('its ok')
如果i1:
打印(‘没问题’)
按位操作数字,但它们将数字视为二进制写入的一串位
a&b
当a和b的相应位都为1时,&
运算符返回1。否则返回0
如果使用&&逻辑运算符,它将按照您的需要工作:
i=2
如果i<3&&i>1:
打印('Works!')
按位操作数字,但它们将数字视为二进制写入的一串位
a&b
当a和b的相应位都为1时,&
运算符返回1。否则返回0
如果使用&&逻辑运算符,它将按照您的需要工作:
i=2
如果i<3&&i>1:
打印('Works!')
i1
读作i1
。
&
是按位AND运算符
因此,其计算结果为i1
,等于i1
i
(=2)不小于2,因此第一个条件是False
。因此,它不符合条件。i1
被读取为i1
。
&
是按位AND运算符
因此,其计算结果为i1
,等于i1
i
(=2)不小于2,因此第一个条件是False
。因此,它不符合条件。和
和&
具有不同的优先级!您的第二个示例被解析为i<(3&i)>1
和以及&
具有不同的优先级!您的第二个示例被解析为i<(3&i)>1
。