问题是我的代码打印出来了
"The number you entered is prime"
很多时候取决于我输入的数字,然后是
"That number is not prime"
如果这个数不是素数。我知道它为什么要这样做(因为if语句不断循环返回for循环,直到找到一个等分的数字,然后打印“not prime”结果),但我要问的问题是如何修复它?你知道吗
def isprime(n):
try:
npnc = "Neither prime nor composite"
if isinstance(n, complex) == True:
print("Sorry, trial division doesn't like negative numbers. Try again.")
elif n == 0:
return npnc
elif n == 1:
return npnc
else:
for m in range(2, (int(n**.5)+1)):
if n%m == 0:
print("That number is not prime")
break
elif n%m > 0:
print("The number you entered is prime")
注意:它确实有一个我没有包含的“except ValueError”片段。你知道吗
在你的函数中使用它-分解任务总是很好的,在这种情况下,它允许提前返回:
在这种情况下可以使用
for..else
。如果没有跳出循环,那么程序将在for
之后执行else
部分。你知道吗等同于:
docs
相关问题 更多 >
编程相关推荐