Глава 13 · Автоматизация с помощью функций

Возвращаем ответ

return передаёт результат работы функции обратно туда, откуда она была вызвана — а функция без return всё равно кое-что возвращает: None.

До сих пор наши функции только печатали текст. Но часто нужно не вывести результат на экран, а вернуть его — чтобы использовать дальше в программе. Ключевое слово return делает именно это:

return.py
def summa(a, b):
    return a + b

result = summa(5, 7)
print(result)         # 12
print(summa(2, 3) * 10)  # результат функции можно использовать сразу — 50
10, 20(аргументы)calculate()работа функции30 (return)
Вход → работа функции → результат уходит обратно в место вызова
print() внутри функции — это не то же самое, что return
Функция, которая только печатает результат, ничего не возвращает — попытка сохранить её результат в переменную даст None:
print_vs_return.py
def summa_pechataet(a, b):
    print(a + b)   # выводит на экран, но не возвращает

x = summa_pechataet(5, 7)  # на экране появится 12
print(x)                    # но x — это None!
print(...) внутри функцииreturn ... внутри функции
Результаттекст на экранеобъект уходит в место вызова
x = f(...)x станет Nonex станет вычисленным значением

Неявный None

Если функция доходит до конца тела, ни разу не выполнив return, Python сам возвращает None:

implicit_none.py
def hello():
    print("Hello")

result = hello()
print(result)
Hello
None
hello() ничего не return-ит — Python сам подставляет None
None — настоящий объект, а не «пустота»
None — это конкретный объект Python, обозначающий отсутствие значения в данном контексте (глава 9). Функция без return не «ничего не возвращает» в смысле полного отсутствия результата — она возвращает именно объект None.

Голый return

return без выражения после него тоже возвращает None — и сразу завершает функцию. Полезно для досрочного выхода:

bare_return.py
def process(value):
    if value is None:
        return
    print(value)

Ранний return

early_return.py
def classify_age(age):
    if age < 0:
        return "Некорректный возраст"

    if age < 18:
        return "Несовершеннолетний"

    return "Совершеннолетний"
ageage < 0?ДАreturn «Некорректныйвозраст»age < 18?ДАreturn«Несовершеннолетний»return«Совершеннолетний»
Каждый return завершает функцию немедленно — код после него в этом вызове не выполнится
return сразу завершает функцию
Как только выполняется return, функция немедленно заканчивает работу — код после него внутри функции не выполнится.

Возвращаем несколько значений

neskolko_znachenij.py
def min_max(numbers):
    return min(numbers), max(numbers)

low, high = min_max([3, 7, 1, 9])
print(low, high)   # 1 9
На самом деле возвращается один кортеж
return a, b на уровне Python создаёт и возвращает ОДИН объект — кортеж (a, b) (глава 11). Функция не «возвращает два объекта одновременно» — она возвращает один кортеж, который затем можно распаковать в две переменные при вызове, точно как любой другой кортеж.
Практика: return, implicit None, ранний return
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →