不明白'如果产品&1'

Car*_*Liu 2 python

我正在从' w3resource ' 做python练习.练习是'编写一个Python函数来查找一对不同的数字,这些数字的整数值序列的乘积是奇数.'

代码如下所示.我不明白"if product&1"的整个块.标志'&'似乎是set.intersection但不确定.同时,为什么两个'返回True'和'返回False'出现?谁能解释一下?谢谢.

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]))
Run Code Online (Sandbox Code Playgroud)

小智 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
Run Code Online (Sandbox Code Playgroud)