📋 Примечание
В исходных материалах Практикума 15 отдельное домашнее задание не указано. Ниже приведены дополнительные упражнения для закрепления темы.
Упражнение 1. Расширьте отчёт по оценкам
Модифицируйте решение задачи 1 так, чтобы программа:
- Пропускала записи с некорректной датой и выводила предупреждение.
- Добавляла в отчёт общий средний балл ученика по всем предметам.
- Сохраняла результат в файл
grades_quarterly_report.json.
Упражнение 2. Валидация по алгоритму Луна
Для задачи 4 (номера банковских карт) добавьте проверку по алгоритму Луна. Сохраните в отдельный файл только те номера, которые прошли проверку.
Упражнение 3. Генератор для больших файлов
Перепишите задачу 2 (немецкие номера) с использованием генератора, который читает файл построчно, а не целиком. Это полезно, если исходный файл занимает сотни мегабайт.
Упражнение 4. Проверка email с учётом доменов
Доработайте задачу 3: программа должна принимать список разрешённых доменов верхнего уровня (например, ["com", "org", "net"]) и выводить только адреса с этими TLD.
🔧 Подготовка окружения
- Создайте папку
python-fundamentals-practice/lesson-61/. - Создайте в ней файлы
grades.json,german_numbers.txt,emails.txt,cards.txtс тестовыми данными. - Напишите скрипты
task_01_grades.py,task_02_phones.py,task_03_emails.py,task_04_cards.py. - Запустите каждый скрипт в VS Code и проверьте вывод.
🧪 Как проверить решение
- Активируйте venv:
venv\Scripts\activate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите скрипты:
python task_01_grades.pyи т.д. - Убедитесь, что выходные файлы созданы и содержат ожидаемые данные.
- Проверьте, что программы корректно обрабатывают ошибки (отсутствующий файл, некорректную дату).