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,那么它就是一个奇数。然而,我得到的输出只保留了偶数。为什么会这样呢?
发布于 2018-06-29 19:19:34
我想你把//操作符搞混了。//是与除法运算符/非常相似的楼层除法运算符。它返回不带浮点数的除法结果。你可以查看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
1https://stackoverflow.com/questions/51099966
复制相似问题