учебный путь · python
Python для начинающих
Первые шаги в Python на прикладных задачах: форматирование данных, классы с состоянием и выбор поведения по ключу. Каждая задача самостоятельна и решается с нуля, без сквозного проекта.
AI-ассистент ведёт подсказками, но решение не выдаёт
curriculum
Задачи пути — 11 модулей, 55 задач
Каждый модуль — навык. Решаешь задачи по порядку, и к финалу из них собирается рабочий результат.
1.1
Форматирование телефона
Приведите строку из 11 цифр к виду +7 (XXX) XXX-XX-XX, отклоняя невалидный ввод
1.2
Корзина магазина
Соберите класс корзины: добавление, удаление и подсчёт итога с защитой от неположительного количества
1.3
Конвертер температуры
Соберите конвертер температуры между c/f/k на словаре-диспетчере с защитой от неизвестной шкалы
1.4
Маскирование номера карты
Скройте все цифры карты, кроме последних четырёх, в виде **** **** **** XXXX, отклоняя невалидный ввод
1.5
Slug из заголовка статьи
Превратите заголовок в URL-slug: транслитерация кириллицы, нижний регистр, слова через дефис
2.1
Нормализация логина
Приведите введённый логин к каноничному виду для хранения, отклоняя пустой и слишком длинный
2.2
Маскирование email
Скройте середину локальной части email для показа в интерфейсе, отклоняя строки без валидного адреса
2.3
Обрезка текста по словам
Обрежьте длинный текст до лимита с многоточием, не разрывая слово посередине
2.4
Заголовок в title case
Приведите английский заголовок к title case, оставляя служебные слова строчными, кроме первого и последнего
2.5
Проверка URL-слага
Проверьте предложенный URL-слаг по правилам длины, символов и дефисов и верните отчёт с кодами ошибок
3.1
Деление счёта поровну
Разделите счёт в копейках на N человек так, чтобы сумма долей сошлась с итогом до копейки
3.2
Скидка с потолком
Посчитайте цену со скидкой в копейках: процент с округлением вниз и ограничение максимальной скидки
3.3
Копейки в рубли строкой
Отформатируйте сумму в копейках как «1 234,50 ₽» с разделителем тысяч и знаком
3.4
Округление до шага
Округлите сумму в копейках до ближайшего кратного шагу, ничью округляя вверх
3.5
Баланс кошелька с потолком
Прогоните операции пополнения, списания и комиссии по балансу в копейках с потолком и защитой от ухода в минус
4.1
Дедупликация событий
Уберите повторы из списка идентификаторов, сохранив порядок первых появлений
4.2
Батчи задач
Разрежьте список задач на батчи фиксированного размера; неполный остаток допустим
4.3
Топ по очкам
Отберите n игроков с наибольшим счётом; при равных очках порядок входа сохраняется
4.4
Слияние лент
Слейте два отсортированных потока событий в одну ленту проходом по обоим спискам
4.5
Недавно смотрели
Буфер недавно просмотренных товаров фиксированной вместимости с вытеснением и подъёмом наверх
5.1
Счётчик событий
Посчитайте, сколько раз встретился каждый тип события в логе, сохранив порядок первого появления
5.2
Обращение ролей
Переверните словарь «пользователь → роль» в «роль → список пользователей» с предсказуемым порядком
5.3
Слияние настроек
Наложите пользовательские настройки поверх значений по умолчанию: при конфликте ключа побеждает переопределение
5.4
Отчёт по продажам
Соберите отчёт по списку продаж: итог, суммы по категориям или лидер — выбор метрики по ключу, неизвестная метрика отклоняется
5.5
Хранилище фича-флагов
Соберите класс in-memory хранилища фича-флагов: set/get/delete/names с выключением по умолчанию для неизвестного флага
6.1
Оценка за тест
Переведите числовой балл 0–100 в буквенную оценку A–F по фиксированным порогам, отклоняя балл вне диапазона
6.2
Проверка пароля
Проверьте пароль против набора правил и верните список кодов невыполненных требований в фиксированном порядке
6.3
Маршрутизация обращения
Определите очередь поддержки по ключевым словам в тексте обращения; побеждает первое правило по приоритету
6.4
Стоимость доставки
Посчитайте стоимость доставки в копейках по весовому тарифу и надбавке за зону, отклоняя слишком тяжёлую посылку
6.5
Валидация формы регистрации
Проверьте поля формы регистрации и верните список кодов ошибок по невалидным полям в фиксированном порядке
7.1
Бегущее среднее задержки
Постройте список средних значений задержки после каждого нового замера
7.2
Счётчик активных пользователей
Посчитайте, сколько сессий заходило не дольше чем N дней назад
7.3
Закупка под лимит бюджета
Набирайте заявки по порядку, пока хватает бюджета, и верните что взяли и сколько потратили
7.4
Самая длинная зелёная серия
Найдите длину самой длинной непрерывной серии успешных сборок
7.5
Поток событий до лимита
Лениво выдавайте события из потока, пока их суммарная стоимость не превысит лимит
8.1
Разбор строки конфига
Разберите строку вида key=value в пару (ключ, значение) с обрезкой пробелов и понятной ошибкой на кривой строке
8.2
Извлечение упоминаний
Соберите из текста поста все @упоминания в нижнем регистре, без повторов, в порядке первого появления
8.3
Перечисление имён
Соберите список имён в строку вида «Аня, Боб и Вера»: запятые между всеми, кроме последнего, и « и » перед ним
8.4
Подстановка в шаблон
Подставьте значения из словаря в шаблон по плейсхолдерам {имя}, отклонив шаблон с неизвестным ключом
8.5
Перенос текста по ширине
Разбейте текст на строки не шире N символов, перенося по пробелам и не разрывая слова
9.1
Фильтр активных пользователей
Отберите из списка записей-словарей тех пользователей, у кого active истинно, сохранив порядок
9.2
Сортировка таблицы лидеров
Отсортируйте список игроков по очкам по убыванию, разрешая ничью по имени по алфавиту
9.3
Общие интересы двух пользователей
Найдите теги, которые есть у обоих пользователей, и верните их отсортированным списком без дубликатов
9.4
Сводка заказов по клиентам
Сверните список заказов в словарь «клиент → число заказов и сумма», игнорируя заказы с неположительной суммой
9.5
Складской остаток
Соберите класс склада: приход и расход товара с защитой от ухода остатка в минус и сводкой остатков
10.1
Разделить счёт с чаевыми
Посчитайте долю каждого гостя от счёта с чаевыми в копейках, раздав остаток первым по списку
10.2
Таблица лидеров
Отсортируйте игроков по очкам и соберите строки таблицы с рангами, где равные очки делят место
10.3
Склад товаров
Соберите класс склада: приём и продажа товара без ухода в минус и список позиций на исходе
10.4
Проверка формы заказа
Соберите валидатор формы из трёх хелперов: верните список ошибок и словарь нормализованных полей
10.5
Сводка расходов за месяц
Соберите из записей о тратах сводку: сумма, разбивка по категориям и крупнейшая категория
11.1
Форматирование длительности
Переведите количество секунд в строку вида MM:SS или H:MM:SS
11.2
Парсинг времени
Разберите строку 'HH:MM' в количество минут от полуночи, отклоняя невалидный формат
11.3
Длительность между временами
Вычислите разницу в минутах между двумя строками 'HH:MM' в рамках одного дня
11.4
Рабочие часы
Проверьте, попадает ли время 'HH:MM' в указанную именованную рабочую смену
11.5
Прибавление минут капстоун
Прибавьте N минут к времени 'HH:MM' с перемоткой через полночь
❯ koddo start python-for-beginners
Готов начать этот путь?
Зарегистрируйся — откроем путь прямо на первой задаче. Без установки и настройки, всё в браузере.