#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 выполняются.