为什么我的代码不必要地输出多行?
n = int(input("Enter a number to find if it is prime: "))
def is_prime():
for i in range(2, n):
if n % i == 0:
print("Not prime")
break
else:
print("The number {} is prime".format(n))
is_prime()
如果我输入数字2例如程序运行时,将打印:
the number 2 is prime
the number 2 is prime
the number 2 is prime
这是为什么?
答案 0 :(得分:3)
您的else
的位置错误。您在if
上有它,但实际上您想在for
上它。
它可能并不为人所知,但是您可以在else
循环中使用for
,如果在循环中没有执行break
,它将执行。
n = int(input("Enter a number to find if it is prime: "))
def is_prime():
for i in range(2, n):
if n % i == 0:
print("Not prime")
break
else:
print("The number {} is prime".format(n))
is_prime()