Функции и возвращаемые значения
Что это и зачем
Функция — именованный блок поведения с параметрами и результатом. def создаёт объект функции; тело выполняется при вызове.
Как это работает
return завершает текущий вызов и передаёт значение вызывающему коду. Без return результат None. Параметры получают значения аргументов; каждый вызов создаёт локальную область. Функции можно передавать другим функциям.
def double(n):
return n * 2
print(double(4))
Когда применять
Выносите повторяемый расчёт в небольшие функции. Отделяйте вычисление от вывода: возвращайте значение, а print оставляйте границе интерфейса. Пишите понятные имена и короткие docstrings с контрактом.
Границы применения
Не создавайте функцию на каждую строку без причины. Избегайте скрытых изменений глобального состояния. Рекурсии нужен базовый случай; глубокую итерацию удобнее реализовать циклом.
Ошибки и лучшие практики
print и return не взаимозаменяемы. Код после return в текущей ветви не исполняется. Возврат нескольких значений обычно создаёт tuple.
Понятна идея? Теперь проверим её в действии.