Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用按位AND而不是AND运算符时不获取输出背后的逻辑_Python_Bitwise And - Fatal编程技术网

Python 使用按位AND而不是AND运算符时不获取输出背后的逻辑

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(&)执行

你能用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(&)执行逻辑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