首页 > 解决方案 > 如何停止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

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

标签: pythonpython-3.xfunctionloops

解决方案


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

推荐阅读