我有一个小函数来检查一个数字是否为素数。除了一个小细节之外,它工作正常 - 它print在程序结束时打印出不止一行。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 primethe number 2 is primethe number 2 is prime它只需要打印该行一次,这是为什么呢?
1 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
你else的位置不对。你有它if,但你实际上想要它在for.
它可能不太为人所知,但您可以有一个elseonfor循环,如果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()
添加回答
举报
0/150
提交
取消