如何停止python打印多于一行?

我有一个小函数来检查一个数字是否为素数。除了一个小细节之外,它工作正常 - 它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 prime


the number 2 is prime


the number 2 is prime


它只需要打印该行一次,这是为什么呢?


慕运维8079593
浏览 156回答 1
1回答

繁华开满天机

你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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python