gpt4 book ai didi

python - 无法理解函数行为 - isprime()

转载 作者:行者123 更新时间:2023-12-01 04:08:04 24 4
gpt4 key购买 nike

我构造了两个函数。第一个(不重要但相关,因为它在第二个中被调用)告诉一个数字是否是素数:

def is_prime(i):
if i == 1:
print("prime")
if i == 2:
print("not prime")
for d in range(2, i):
if i % d != 0:
d = d+1
if d == i:
print('prime')
break
if i % d == 0:
print('not prime')
break

我希望能够让这个函数计算从 1p 的所有素数。当我要求它将其附加到列表中时 - 它返回一个空列表和单独的所有值。

def prime_counting(p):
list_of_primes = []
for n in range (p+1):
if is_prime(n) == "prime":
list_of_primes.append(n)

Instead of putting it in the list- it maps them separately

我该如何解决这个问题?

最佳答案

(注意:我没有检查您的 is_prime() 函数的逻辑)
代码中的明显错误是函数 is_prime() 不会返回任何内容,它只是打印。您希望它返回 TrueFalse,具体取决于数字是否为质数。更改它以执行此操作。

然后您可以检查:

if is_prime(n) == True:
list_of_primes.append(n)

编辑:正如评论中(正确地)所述,编写此类语句的更“Pythonic”方式是:

if is_prime(n):
list_of_primes.append(n)

由于 is_prime() 将返回 TrueFalse(因此无需与它们进行比较)。

关于python - 无法理解函数行为 - isprime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309530/

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