📖 О чём этот урок
Это практический урок, в котором нужно написать пять рекурсивных функций. Каждая функция не только решает задачу, но и защищается от некорректных входных данных: неверного типа аргумента, нечисловых элементов или неверной структуры вложенных коллекций.
Такой подход приближает учебные примеры к реальному коду: внешние данные нельзя считать корректными, поэтому валидация и обработка ошибок — обязательная часть программы.
🎯 Цели
- Закрепить навык написания рекурсивных функций с чётким базовым случаем.
- Применять
isinstanceдля проверки типов аргументов и элементов коллекций. - Возбуждать исключения через
raiseпри нарушении условий задачи. - Оборачивать вызовы функций в
try/exceptдля корректной реакции на ошибки. - Использовать guard clauses и ранний возврат для читаемого кода.
- Работать со вложенными списками и словарями рекурсивно.
📂 Структура урока
📖 Теория
Рекурсия, guard clauses, валидация через исключения
🔖 Справочник
Синтаксис isinstance, raise, try/except
💻 Примеры
Рабочий код для каждой из пяти задач
⚖️ Старый vs Новый
Сравнение плоского подхода и современной практики Python
📝 Задания
Пять практических задач на рекурсию и валидацию
✅ Решения
Полные решения с разбором логики
🐛 Ошибки
Типичные ошибки при рекурсии и обработке исключений
🏠 Домашнее задание
Пошаговый план и полный файл решения
🔗 Ресурсы
Официальная документация и полезные ссылки
📚 Что повторить перед изучением
🎯 Что изучать дальше
- Урок 50 — Файловая система
- Попробуйте добавить валидацию и обработку ошибок к уже написанным рекурсивным функциям.