gpt4 book ai didi

python - 使用 for 和 while 循环编写质数函数的最 Pythonic 方法是什么?

转载 作者:行者123 更新时间:2023-12-01 01:35:49 26 4
gpt4 key购买 nike

我即将执行一个函数,其目的是如果其参数是或不是素数,则返回素数/非素数语句。我成功地使用了 for 循环:

def prime1(n):

z = []

for i in range (1, n+1):
if (n/i).is_integer():
z.append(i)
i=i+1

if len(z) == 2:
print ("Prime")
else:
print ("Not prime")`

然后我尝试做同样的事情,但使用 while 循环:

def prime2(n):

z = []
i = 1

while i < int(len(range(1, n+1))):
if (n/i).is_integer():
z.append(i)
i=i+1

if len(z) == 2:
print ("Prime")
else:
print ("Not prime")

不幸的是,我的系统继续计算,但没有打印输出。

你能解释一下我哪里犯了错误吗?

最佳答案

i = i + 1for 循环中不执行任何操作,因为 i 的值会被下一个值覆盖迭代器;实际上,for 循环在每次迭代中为您执行i = i + 1,无论是否in。您需要在 while 循环中执行相同的操作:

while i < n + 1:
if (n/i).is_integer():
z.append(i)
i = i + 1

关于python - 使用 for 和 while 循环编写质数函数的最 Pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408488/

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