我正在编写这个函数来测试数字的素数,我知道它不是最好的代码但我希望它打印出 Not prime 当一个数字不是素数且当数字为素数时,为素数。问题是它打印出 Not prime 然后是素数表示非素数的数字... 例如这段代码:
def isPrime(n):
for i in range(2, n):
if n%i==0:
print "Not Prime!"
break
print "Is Prime"
isPrime(5)
isPrime(18)
isPrime(11)
打印出来。
Is Prime
Not Prime!
Is Prime
Is Prime
帮帮我,我该怎么办?我是初学者。
答案 0 :(得分:1)
break
- 它只是退出循环。因此,只要您打印“Not prime”,就会退出循环并继续下一个打印语句。
使用关键字break
替换return
。 return
将立即退出该函数,返回您为return语句提供的值,如果您只是None
旁边没有值,则会return
。
答案 1 :(得分:1)
这是一个修复程序(python 3)
def isPrime(n):
prime = True
for i in range(2, n):
if n%i==0:
print("Not Prime!")
prime = False
break
if prime:
print("Is Prime")
isPrime(5)
isPrime(18)
isPrime(11)
您发布的代码中的问题是始终执行最后一个print
。