在Python中创建While循环

时间:2016-12-12 20:45:43

标签: python loops while-loop

我试图写一个素数列表,直到我的列表超过一定的大小。

我现在拥有的是:

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>

有人可以指出我出错的地方吗,请解释一下我不太了解的循环情况, 谢谢

1 个答案:

答案 0 :(得分:1)

您没有发布prime功能,因此无法确定是否导致问题。考虑将代码发布到它。否则:

我已将变量名称list更改为primeslist是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.尝试本文中的实现,看看你的函数是否有效。