Как остановить печать на Python более чем на одну строку? - PullRequest
0 голосов
/ 29 марта 2019

Почему мой код выводит несколько строк без необходимости?

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 Ответ

4 голосов
/ 29 марта 2019

Ваш 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...