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