paths / python-functions-idioms
учебный путь · python

Python: функции и идиомы

  • Python
  • Средний
  • 5 модулей
  • 25 задач
  • Premium

Прокачайте функции до уровня собеседований: гибкие сигнатуры с *args и **kwargs, замыкания и фабрики, декораторы, генераторы и ленивые конвейеры, comprehensions и sorted с key. Каждая задача самостоятельна.

AI-ассистент ведёт подсказками, но решение не выдаёт
curriculum

Задачи пути — 5 модулей, 25 задач

Каждый модуль — навык. Решаешь задачи по порядку, и к финалу из них собирается рабочий результат.

25 задач · 5 модулей
1.1
Заказ у бариста
Соберите выкрик заказа с двумя параметрами по умолчанию — размер и число шотов задаются только когда отличаются
1.2
Донаты марафона
Сложите донаты, сколько бы их ни прилетело: *args принимает любое число аргументов, включая ноль
1.3
Адрес запроса к API
Соберите URL с query-параметрами из **kwargs — отсортированными, чтобы кэш узнавал одинаковые запросы
1.4
Строка лога
Сигнатура-комбайн: уровень позиционно, куски через *args, разделитель — только по имени после звёздочки
1.5
Настройки запуска
Дефолты плюс переопределения из **kwargs — новый словарь, исходный конфиг неприкосновенен
2.1
Нумератор талонов
Фабрика счётчиков для окон МФЦ: возвращённая функция помнит номер между вызовами через nonlocal, и каждое окно ведёт свою очередь
2.2
Конструктор акций
Фабрика функций-скидок маркетплейса: процент запоминается замыканием, цена в копейках считается только целочисленно
2.3
Штамп пересменки
Фабрика функций-штампов для заводского журнала: метка смены зашивается замыканием, каждая запись получает префикс в квадратных скобках
2.4
Правило анкеты
Фабрика валидаторов длины для полей анкеты: порог зашит замыканием, длина меряется после strip, граница включительно
2.5
Номера заказов пекарни
Фабрика генераторов номеров: префикс и стартовый номер зашиты замыканием, счётчик растёт через nonlocal, формат PREFIX-0001
3.1
Счётчик вызовов трекера
Напишите первый декоратор: обёртка считает вызовы функции в собственном атрибуте calls и пробрасывает результат
3.2
Шлюз без минусов
Декоратор выпрямляет вход: отрицательный первый позиционный аргумент заменяется нулём, остальные аргументы неприкосновенны
3.3
Кэш последнего прогноза
Соберите кэш глубины один: обёртка помнит позиционные аргументы и результат последнего вызова и гасит точные повторы
3.4
Фильтр пустых отзывов
Декоратор-охранник: пустая после strip() строка возвращает None без вызова функции, непустая уходит внутрь нетронутой
3.5
Смоук-прогон обработчиков
Соберите фабрику декораторов: repeat_calls(times) прогоняет функцию times раз с теми же аргументами и возвращает список результатов
4.1
Отсчёт до старта
Первый генератор: yield выдаёт числа обратного отсчёта по одному, а после единицы — строку «Старт!»
4.2
Страницы ленты
Генератор режет ленту объявлений на страницы по per_page — очередная страница строится только по запросу
4.3
Баланс после операции
Генератор нарастающего итога: yield баланса карты после каждой операции выписки, минус легален
4.4
Фильтр событий офиса
Ленивый генератор-фильтр журнала умного офиса: yield событий нужного вида, next() достаёт первое не дочитывая
4.5
Траты в пределах бюджета
Ленивый генератор поверх любого iterable: yield трат, пока нарастающая сумма влезает в бюджет, — бесконечный источник не страшен
5.1
Витрина «Премиум»
Соберите list comprehension названия товаров дороже порога — отбор и извлечение поля одной строкой
5.2
Индекс по артикулу
Переупакуйте складскую выгрузку в словарь sku → запись через dict comprehension — при дубле артикула побеждает последняя
5.3
Порядок на спринт-борде
Отсортируйте задачи sorted-ом с ключом-кортежем: приоритет по убыванию, при равенстве — алфавит, вход не трогать
5.4
Конвейер уценки
Соберите map → filter: скидка по целочисленной формуле, затем отсев цен ниже минималки — порядок этапов решает всё
5.5
Дайджест продаж капстоун
Капстоун идиом: топ позиций по выручке через sorted с ключом-кортежем, итог генераторным выражением, форма результата — ровно три ключа
Путь входит в Koddo Premium Открой все премиум-пути, AI-ассистента без лимитов и daily challenge. от 490 ₽ / мес
koddo start python-functions-idioms

Готов начать этот путь?

Зарегистрируйся — откроем путь прямо на первой задаче. Без установки и настройки, всё в браузере.