Python打印出多行

时间:2019-03-29 13:07:54

标签: python function

为什么我的代码不必要地输出多行?

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

这是为什么?

1 个答案:

答案 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()