【发布时间】:2021-02-11 04:46:01
【问题描述】:
这就是我所拥有的。该函数在过滤出合数时效果很好,但我不知道为什么它会打印某些数字的重复项:
def prime_filter(list):
prime_list = []
for i in list:
if i == 2:
prime_list.append(i)
if i > 1:
for n in range(2, i):
if(i % n == 0):
break
else:
prime_list.append(i)
print("The total number of prime numbers is: ", len(prime_list))
print(prime_list)
这是我对该函数的测试及其返回的输出:
# test
test_list = [2, 3, 6, 8, 11]
prime_filter(test_list)
The total number of prime numbers is: 11
[2, 3, 11, 11, 11, 11, 11, 11, 11, 11, 11]
有人知道我该如何解决这个问题吗?非常感谢任何帮助。
【问题讨论】:
-
第一件事->不要使用
list作为python中的保留函数的变量 -
break只破坏内部循环 -
删除for循环内的else部分
标签: python function duplicates