Перейти к содержанию

412 уроков, 25 библиотек и челлендж «Что выведет код?» — бесплатно, код прямо в браузере

Начать обучение

Функции в Python: def, lambda и map с нуля — интерактивный курс (20 уроков)

Напиши один раз — вызывай везде: def, lambda и декораторы по-человечески

Редакция Питоники

20 уроков ≈ 10–14 часов Начальный Бесплатно и без регистрации
Функции: интерактивные уроки с запуском кода в браузере

Функция — это блок кода с именем: написал один раз, вызываешь везде. Без функций программа — одна длинная простыня с копипастой; с функциями — набор понятных деталей, которые можно тестировать, переиспользовать и читать. В Python функции везде: len и print — функции, методы строк — функции, декораторы оборачивают функции в функции.

Двадцать уроков ведут от первой def до уверенного владения: return и аргументы, значения по умолчанию, область видимости, lambda для коротких правил, map и filter для обработки списков, sorted с key для сортировки по своему правилу, *args и **kwargs, встроенные функции, рекурсия, замыкания, декораторы, аннотации типов — и финальный проект: собственная библиотека утилит.

Каждый пример исполняется прямо на странице: поменял аргумент — увидел другой вывод. Ничего устанавливать не нужно.

Чему научитесь

  • Объявлять функции через def и вызывать их
  • Возвращать результат через return
  • Писать аргументы с значениями по умолчанию
  • Различать локальные и глобальные переменные
  • Писать lambda для коротких правил
  • Обрабатывать списки через map и filter
  • Сортировать по своему правилу через sorted с key
  • Принимать переменное число аргументов: *args и **kwargs
  • Понимать замыкания и декораторы
  • Собрать свою библиотеку утилит

Для кого: Тем, кто уже перебирал списки циклами и заметил, что копирует одни и те же куски кода, — пора научиться выносить повтор в функцию.

Программа раздела
20 уроков
  1. Урок 1. Функции в Python: первая defПервая функция: задаём блоку кода имя через def и вызываем по скобкам. Разбираем объявление на части — имя, двоеточие, тело с отступом — и видим, зачем функция вместо копипасты.
  2. Урок 2. Аргументы функции в Python: данные внутрьФункция принимает данные через параметры: greet('Анна') здоровается с Анной. Разбираем позиционные аргументы, порядок и количество — и типичную ошибку TypeError.
  3. Урок 3. Return в Python: функция возвращает результатprint показывает значение человеку, return отдаёт программе. Учимся возвращать результат, класть его в переменную и использовать в выражениях — и не путать return с print.
  4. Урок 4. Умолчания и именованные аргументы в PythonНеобязательные параметры с запасными значениями и вызов по имени: def f(x, n=2) и f(x=5, n=3). Разбираем порядок параметров и знакомимся с ловушкой изменяемого умолчания.
  5. Урок 5. Область видимости в Python: локальное и глобальноеПеременная, созданная внутри функции, снаружи не существует. Разбираем локальные и глобальные имена, ловушку UnboundLocalError и почему global лучше не трогать.
  6. Урок 6. Lambda в Python: функция в одну строкуlambda — правило без имени: аргументы до двоеточия, одно выражение после. Учимся писать короткие правила и передавать их в другие функции аргументом.
  7. Урок 7. Функция map в Python: обработка спискаmap применяет функцию к каждому элементу списка одной строкой. Разбираем ленивый итератор, обёртку list() и правило выбора между map и циклом.
  8. Урок 8. filter в Python: оставить подходящиеmap менял каждый элемент, а filter выбирает: оставить только чётные, только длинные слова, только заполненные строки. Разбираем filter и его хитрости.
  9. Урок 9. sorted с key в Python: сортировка по правилуПорядок по своему правилу: слова по длине, пары по цене, участники по очкам. Разбираем sorted, параметр key, reverse и стабильность Timsort.
  10. Урок 10. *args в Python: сколько аргументов угодноФункция, которой нельзя заранее сказать, сколько значений придет: два числа, пять или ни одного. Разбираем звёздочку: упаковку в кортеж и распаковку при вызове.
  11. Урок 11. **kwargs в Python: именованные на подхватеПозиционные аргументы умеет собирать звёздочка — а какие именованные прислал вызов, заранее не знал никто. Разбираем двойную звёздочку и словарь настроек.
  12. Урок 12. Встроенные функции Python: инструментальный ящикДесятки функций лежат в Python наготове: len, sum, min, max, abs, round, enumerate, zip, input. Обзор инструментального ящика — что чем открывать.
  13. Урок 13. Функция как значение в Python: передача функцийmap и sorted уже принимали функции в аргументах — теперь разберём приём целиком: функция такое же значение, как число или строка.
  14. Урок 14. Рекурсия в Python: функция вызывает себяФункция, которая вызывает сама себя, звучит как ловушка — но с базой и шагом это инструмент для задач, повторяющих самих себя.
  15. Урок 15. Замыкания в Python: функция с памятьюФункция, которая помнит место своего рождения: делаем счётчик на замыкании, разбираем nonlocal и ловим классическую ловушку с циклом.
  16. Урок 16. Декораторы в Python: обёртка вокруг функцииСобираем декоратор руками: функция-обёртка, знак @, пропуск любых аргументов насквозь и functools.wraps, чтобы функция не теряла имя.
  17. Урок 17. Аннотации типов в Python: подсказки для людейПодписываем аргументы и результат: что дают аннотации, что они не проверяют, и как выглядят типы для списков, словарей и Optional.
  18. Урок 18. docstring в Python: документация внутри функцииДокументация живёт внутри функции: строка в тройных кавычках после def, атрибут __doc__ и честный формат короткого описания.
  19. Урок 19. Ошибки функций в Python: TypeError и его друзьяTypeError — короткое письмо о вызове: не хватило аргумента, пришёл лишний, не тот тип. Учимся читать трассировку и ловить ошибки честно.
  20. Урок 20. Проект на функциях Python: библиотека утилит для текстаИтоговый проект раздела: своя мини-библиотека утилит для текста — normalize, word_count, top_words. Три куска, каждый запускается и проверяется отдельно.