擅长:python、mysql、java
<p>有两件事突然出现:</p>
<p>(1)您不需要在开始时将liste设置为[2];primeCandidate循环包含2,因此如果这样做,您将得到两次2。在</p>
<p>(2)你的“如果我是”太深了。只有在检查了候选除数后,才能信任isPrime。(好吧,你实际上检查得比你需要的多,但这只是一个效率问题,而不是一个bug。)具体来说:</p>
<pre><code>liste = []
for primeCandidate in range (2,100):
isPrime = True
for divisor in range (2,primeCandidate):
if primeCandidate % divisor == 0:
isPrime = False
break
if isPrime:
liste.append(primeCandidate)
print(liste)
</code></pre>