<p>我有两个共同工作的功能。第一个生成下一个素数。第二个将素数附加到素数列表中。当我基本上说I=next(n)=nextPrime(primeList)时,我觉得我在第二个函数中过度使用了变量。有没有更好的方法写这个?你知道吗</p>
<pre><code>def nextPrime(primeList):
checkNum = 3
while True:
for i in primeList:
if checkNum % i == 0:
break
if i > math.sqrt(checkNum):
yield checkNum
break
checkNum += 2
def primeNumbers(limit):
primeList = [2]
i = 0
n = nextPrime(primeList)
while i <= limit:
i = next(n)
primeList.append(i)
return primeList
primeList = primeNumbers(200000)
</code></pre>
<p>这样行吗?你知道吗</p>
<pre><code>def primeNumbers(limit):
primeList = [2]
for i in nextPrime(primeList):
if i > limit:
break
primeList.append(i)
return primeList
</code></pre>