【发布时间】:2020-12-17 21:24:18
【问题描述】:
我运行了以下代码:
def isprime(number):
prime=True
result=""
for i in range(2, number//2):
if number%i==0:
prime=False
break
if(bool(prime)):
result="Prime"
else:
result="Not prime"
return result
number 是之前给函数的。 我运行它并输入 number=4,但它返回 Prime 你能帮助我吗?我几个小时前才开始学习 python。
【问题讨论】:
-
请修正问题中的代码缩进。目前尚不清楚哪些代码应该是函数的一部分,哪些不是。
-
range(2, number//2)从2变为number//2 - 1,这意味着它不包括数字2。无论如何,您应该学习如何使用调试器来逐行查看正在发生的事情。 -
prime已经是bool;没有理由调用bool从中获取布尔值。 -
您的函数确实没有理由(除了构造不佳的赋值之外)返回用作正确布尔值代理的
str变量。只返回prime本身,而不是根据其值选择的字符串。