我试图写一个素数列表,直到我的列表超过一定的大小。
我现在拥有的是:
list = []
i = 2
while len(list) <= 10000:
if prime(i) == 0:
list.append(i)
i = i+1
print(list[-1])
其中prime(x)是主要函数。
然而,这只是让python在一个看似无限的循环中打印出0和1,我也尝试将i = 2放在while循环中但是只打印了10,001 2&#39; / p>
有人可以指出我出错的地方吗,请解释一下我不太了解的循环情况, 谢谢
答案 0 :(得分:1)
您没有发布prime
功能,因此无法确定是否导致问题。考虑将代码发布到它。否则:
我已将变量名称list
更改为primes
。 list
是Python中的内置函数名称,它有时会导致将其用作变量名称的问题。
primes = []
i = 2
while len(primes) <= 10000:
if prime(i) == 0:
# Line here is indented further
primes.append(i)
# Line here is indented further
i += 1
print(primes)
print(primes[-1])
那怎么办?看起来你的问题是由于缺少适当的缩进造成的。注意对while循环下面的行的更改。
编辑:
然而,这只会让python在一个看似无限的循环中打印出0和1
如果您的缩进符合原始答案,那么while循环将永远存在。它的输出在0和1之间变化这一事实很奇怪,因为从技术上讲,唯一的输入值是i = 2.尝试本文中的实现,看看你的函数是否有效。