不了解“如果产品&1”

时间:2018-09-05 05:20:48

标签: python

我正在从'w3resource'开始进行python练习。练习是“编写一个Python函数以查找一对不同的数字,其乘积与整数值序列的乘积是奇数。”

代码如下所示。我不了解“ if product&1”的全部内容。符号“&”似乎已设置。相交但不确定。同时,为什么同时出现“返回真”和“返回假”?谁能解释?谢谢。

def product(lst):
    for i in range(len(lst)):
        for j in range(len(lst)):
            if i != j:
                product = lst[i] * lst[j]
                if product & 1:
                    return True
                    return False

print(product([2, 4, 6, 8]))
print(product([1, 6, 4, 7, 8]))

1 个答案:

答案 0 :(得分:5)

product & 1表示检查乘积是否为奇数,因为奇数的二进制表示形式的最后一位始终为1,而偶数为0。

似乎您不太了解&的含义。 &是按位运算符。这是计算5和9的方法:

1)将5转换为二进制表示形式(5)10 =(101)2

2)将9转换为二进制表示形式(9)10 =(1001)2

3)对于每个二进制数字,&带有两个1的&为1,否则为0。

    ( 101)2 
  & (1001)2
  = (0001)2