Представьте рецепт «сварить кофе»: вы один раз записали шаги, дали им название, и теперь можете «сварить кофе» сколько угодно раз, не переписывая инструкцию заново. ФункцияИменованный блок кода, который можно вызывать многократно. Может принимать аргументы и возвращать результат. — это и есть такой именованный рецепт в коде: блок действий с названием, который можно вызывать многократно. Она избавляет от копирования и делает программу понятной. Создаётся словом def (от англ. define — «определить»).
▶ def.py
Разберём по словам строкуТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str). объявления def greet(name):
def — «определяю функцию»;
greet — имя функции, которое придумали мы;
(name) — параметр: ячейка для входных данных;
: и тело с отступом — что функция делает.
Один рецепт описали — три раза «приготовили» с разными именами. При каждом вызове name получает переданное значение.
Возврат значения: return
Есть принципиальная разница между «показать на экране» и «вернуть в программу». print() просто печатает текст человеку. А returnвозвращает результат обратно в код — его можно сохранить в переменнуюИменованное хранилище для значения. Имя связывается со значением через присваивание: x = 5. и использовать дальше. В задачах LeetCode почти всегда нужен именно return, а не print.
▶ return.py
Поскольку squareвозвращает число, его результат участвует в выражениях как обычное значение: square(3) + square(4) — это 9 + 16. Если бы функция печатала через print вместо return, сложить результаты было бы нечего.
🚫Внимание
Важно различать print и return. print показывает значение человеку, но программа его «не запоминает». return отдаёт значение обратно в код. И ещё: после return функция немедленно завершается — строки ниже не выполнятся.
💡Совет
Предскажите вывод. Что напечатает код ниже — число или None? Подсказка: функция использует print внутри, но ничего не возвращает.
▶ predict-return.py
Напечатается сначала 5 (это сделал print внутри функции), а потом None — потому что функция ничего не вернула, и в result попало «ничего». Чтобы сохранить результат, нужен return a + b.
▶ params.py
Значение по умолчанию (greeting="Привет") — это запасной вариант: если аргументЗначение, которое передаётся функции при вызове. Внутри функции оно доступно как параметр. не передали, используется он. Поэтому greet("Аня") работает без второго аргумента.
⚠️ Частые ошибки новичков
Ошибка. Перепутать print и return: функция печатает результат, но не возвращает его, а потом мы пытаемся им воспользоваться. Запустите код — увидите None там, где ждали число. Почините: замените print(x * x) на return x * x.
▶ broken-return.py
Заданиерешение.py
Напишите функцию is_even(n), которая возвращает True, если число n чётное, и False в противном случае.
Заданиерешение.py
Напишите функцию greet(name), которая возвращает (не печатает!) строку вида Привет, Имя!. Например, greet("Аня") должна вернуть "Привет, Аня!".
Заданиесредняярешение.py
Напишите функцию count_vowels(word), которая возвращает число гласных букв (а, е, ё, и, о, у, ы, э, ю, я) в слове. Считайте, что слово приходит в нижнем регистре.
❓Проверь себя
Каким словом создаётся функция в Python?
Что вернёт функция, если в ней нет return?
Зачем нужно значение по умолчанию у параметра?
ℹ️Важно
✅ Что вы узнали
Функция — именованный блок кода, объявляется через def.
Параметры — входные данные функции.
return возвращает результат в программу; print только печатает.
Комментарии
Загрузка…
Загрузка комментариев…