Глава 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
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 станет None | x станет вычисленным значением |
Неявный None
Если функция доходит до конца тела, ни разу не выполнив return,
Python сам возвращает None:
implicit_none.py
def hello():
print("Hello")
result = hello()
print(result)
Hello
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 "Совершеннолетний"
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, без установки