← Все вопросы
Почему моя функция возвращает None?
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.
Ваш ответ
Войдите, чтобы ответить на вопрос.