Возможно, в операторе Python If else есть ошибка

#python #function #if-statement #return

#python #функция #if-statement #Возврат

Вопрос:

 def evod(number):
    if number % 2 == 0:
        print("The number is even")
    return"The number is odd"

print(evod(60))


Output:
The number is even
The number is odd
  

если я запускаю эту функцию, она печатает обе строки. Он должен напечатать один из них. Почему это происходит? Пожалуйста, помогите…

Комментарии:

1. Код правильный. В случае, если это четное число, сначала вводится оператор if, затем будет выполнена следующая строка, которая является строкой возврата. Добавьте if else , и я бы переключился на чистые операторы печати и возвращаемое значение как True False .

Ответ №1:

Вы печатаете один внутри функции и каждый раз возвращаете другой, вам нужно вернуть оба и позволить print извне быть тем, кто на самом деле его печатает.

 def evod(number):
    if number % 2 == 0:
        return "The number is even"
    return "The number is odd"

print(evod(60))
  

Вывод:

 The number is even
  

Комментарии:

1. возможно, вы захотите объяснить, почему оба были напечатаны

2. Прохладный. Другим способом было бы поместить печать в if amp; else . Тогда вам не нужно печатать снаружи.

3. @leoOrion Несколько альтернативных решений, таких как return "The number is even" if number % 2 == 0 else "The number is odd"

Ответ №2:

Первая ошибка заключается в том, что вы печатаете строку «Число четное». Замените print на return

Ответ №3:

Если ваше число четное, вы используете print() для возврата ответа. Однако ваш код на этом не заканчивается, поскольку print() не работает как return . Таким образом, оба оператора print и return выполняются.