我正在自学python,并且是一个初学者,我真的为此感到挣扎,并且我希望有一个正确方向的指南。
我必须创建一个函数,该函数可以将列表作为参数,计算哪些是质数,哪些不是,然后返回仅包含质数的列表。我设法写了一些找到单数质数的东西,但无法将其改编成列表,它似乎不起作用,所以这是我的主要问题!
我的一般策略是定义函数,基本上是编写一个控件,该控件确定列表中的元素是否为质数,然后将其放入新列表中,然后在调用函数时返回该列表,但是我无法付诸实践,这就是我的经验:
def PrimeList(list,x):
for i in list:
for x in range (2, i-1):
if (i % x) == 0 :
list.remove(i)
return list
print(PrimeList(...,...))
所以我的想法是我是我在打印位中放入的列表中的任何数字,然后它测试x,它是2到i本身减去1的所有整数。然后,如果确定i%x没有余数,则它不是素数,因此将其从列表中删除。
几个问题:
1)它没有运行,它说我得到:
ValueError: list.remove(x): x not in list
2)我最初使用了append,并定义了一个新变量z,这样我有了z=[]
,然后在z.append(i)
之后又有了return z
。
这时,我得到的只是非质数,并重复地将新质数根数加到新质数中,所以8出现了两倍,分别是4和2。我不知道为什么发生了..
3)我不知道在参数{x}的最后print(PrimeList(...,...))
位中要放什么,因为它将限制i。
任何指向解决方案的指针将不胜感激,谢谢!