def sieve(numbers):
odd = []
for i in numbers:
if (i//2) != 2:
odd.append(i)
return odd
a = [2, 4, 6, 8, 5]
print(sieve(a))
Output:
[2, 6, 8]
我希望此函数筛选出偶数,并且您可以看到我的if语句使用楼底除法将i的值除以2,如果不等于2,则它是一个奇数。但是,我得到的输出仅保留偶数。这是为什么?
答案 0 :(得分:0)
我认为您对//
运算符感到困惑。 //
是楼层除法运算符,与除法运算符/
非常相似。它返回无浮点数的除法结果。您可以检查here:
>>> a = [2, 4, 6, 8, 5]
>>> for i in a:
print i//2
输出:
1
2
3
4
2
为了找到奇/偶数,您可以使用模运算符%
,如@lgle所说:
>>> for i in a:
print i%2
输出:
0
0
0
0
1