← Все вопросы

Почему моя функция возвращает None?

Задан 11 месяцев назад691 просмотров3 ответа
11
def summa(a, b):
    print(a + b)

x = summa(2, 3)
print(x)   # None

Функция считает сумму, но x получается None. Почему?

3 ответа

18
✓ Принятый ответ — помог автору

Нет return — функция печатает, но не возвращает. Замени print(a + b) на return a + b.

Павел Дмитриев перепутал print и return, спасибо! · 10 месяцев назад
9

print и return — разные вещи. print показывает значение на экране, а наружу из функции отдаёт return. Если return нет (или есть return без значения, или до него не доходит выполнение), функция возвращает None — это её значение по умолчанию.

def summa(a, b):
    return a + b   # теперь x получит число

Ещё частый случай: return стоит внутри if, а нужная ветка не сработала — тогда тоже вернётся None. Убедись, что return достижим при любом раскладе.

4

Забыл return.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект