gpt4 book ai didi

python - 函数 is_prime - 错误

转载 作者:太空狗 更新时间:2023-10-29 18:01:37 24 4
gpt4 key购买 nike

这是一个来自 codeacademy.com 的问题,我正在那里学习 Python。所以我想要的是定义一个函数来检查一个数是否为素数。如果是,则返回 True。如果不是,则返回 False。

这是我的代码:

def is_prime(x):
lst = [] # empty list to put strings 'False' and 'True'

for i in range(2,x): # starting at 2 and not including x (number 1 is a divisor of all numbers

if x <= 2: # [1] see bellow the explanation
lst.append('False')
break

elif x % i == 0: # if x is divisible by i(number between 2 and not including x)
lst.append('False')
break # break, because we already know x is not prime

elif x % i > 0:
lst.append('True') # x is not divisible by i

if 'False' in lst:
return False # x is not prime - return False

else:
return True # 'True' is in lst, so x is prime - return True

print is_prime(-2) # [2] I get an error here. See below

[1] - 我提出这个条件是因为在 codeacademy 中它说: “暗示 请记住:所有小于 2 的数字都不是质数!”

[2] - 例如,当我运行“print is_prime(11)”或“is_prime(6)”时,它工作正常。所以我提交了答案,但codeacademy不接受。它说:“您的函数在 is_prime(-2) 上失败。它在应该返回 False 时返回 True。”

最佳答案

让我们看看当您输入 -2 时会发生什么:

  • range(2,-2) 为空,因此 for 循环永远不会运行。
  • 因此,lst在循环后仍然是[]
  • 因此,lst 中的'False'False
  • 因此,return True被执行。

关于python - 函数 is_prime - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20728274/

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