gpt4 book ai didi

python - 修复用于制定素数列表的初学者代码

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:20 27 4
gpt4 key购买 nike

代码导致列表附加奇数而不是素数。如果奇数不能被 3 整除,则列表将生成特定数字至少 3 次:

for i in range(2,100):
for x in range(2,i):
if (i %x==0):
break
else:
prime.append(i)
print(prime)

我希望生成一个范围为 (2, 100) 的素数列表。然而实际输出是:

...
[3, 5, 5, 5, 7, 7, 7, 7, 7, 9]
[3, 5, 5, 5, 7, 7, 7, 7, 7, 9, 11]
[3, 5, 5, 5, 7, 7, 7, 7, 7, 9, 11, 11]
...

最佳答案

这仅仅是由于两个缩进错误:一个在您的 else 语句中;一个在您的 else 语句中;一个在你的 print 语句上:

prime = []

for i in range(2, 100):
for x in range(2, i):
if i % x == 0:
break
else: # no break
prime.append(i)

print(prime)

在 Python 中,正确的缩进很重要。只有当 for 循环没有通过 break 语句退出时,for 循环中的 else 才会执行。正如@B.Go 指出的那样,这不是一个高效的素数生成器,但它是一个有效的生成器。

关于python - 修复用于制定素数列表的初学者代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56727543/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com