Python 制造主发电机
这应该是一个主发电机。我试着运行这个,但它没有打印出整数。节目也将立即结束。我不知道它是否在运行Python 制造主发电机,python,Python,这应该是一个主发电机。我试着运行这个,但它没有打印出整数。节目也将立即结束。我不知道它是否在运行 def prime_gen(): start = 1 while start: if start % start == 0: print(start) start += 1 这里有两个主要问题: 您的算法不计算素数-它在启动时无限运行,并在number%number==0时打印一个数字,即始终为真的数字模数。这
def prime_gen():
start = 1
while start:
if start % start == 0:
print(start)
start += 1
这里有两个主要问题: 您的算法不计算素数-它在启动时无限运行,并在number%number==0时打印一个数字,即始终为真的数字模数。这是一个无限循环,从1开始打印数字 你从来不打电话给prime_gen,这就是为什么程序什么都不做。 您已经创建了一个函数,但没有调用它
要获得计算素数的好方法,请查看。您可以执行以下操作:
def prime_gen(limit):
current = 2 # 1 is not exactly prime
primes = []
while current <= limit:
isPrime = True
for p in primes:
if current % p == 0:
isPrime = False
break
if isPrime:
primes.append(current)
print current, ", ",
current += 1
return primes
首先什么是素数?除自身外没有除数的数。 最简单的方法是加载该数字,从2开始,检查该数字是否不能除以之前的所有数字,如果是,则得到一个新数字;你可以通过使用收益率而不是回报率使它成为一个发电机 例如:
pg = prime_gen()
next(pg)
2
next(pg)
3
next(pg)
5
next(pg)
7
next(pg)
11
这是python?是的,我忘了说对不起D:确保你设置了正确的标记..好的,下次你没有调用函数时我会这样做。剧透警报使用Ctrl+C结束程序的无休止循环。
pg = prime_gen()
next(pg)
2
next(pg)
3
next(pg)
5
next(pg)
7
next(pg)
11