我正在从'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]))
答案 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