- Освоить базовые конструкции Python: условия и циклы.
- Научиться проектировать функции и процедуры, разбивать программу на модули и пакеты.
- Применить коллекции Python (списки, словари) для хранения и обработки данных.
- Освоить обработку ошибок и исключений, проектирование собственных исключений.
- Научиться работать с файлами: чтение/запись, формат CSV.
- Освоить базовую автоматизацию тестирования с помощью pytest.
- Загрузка и сохранение - чтение и запись списков студуентов в формате CSV (причем работа как с заголовками так и без них)
- Управление списком студентов
- Добавление нового студента
- Удаление студента по уникальному id
- Обновление списка оценок для студента
- Просмотр полного списка студентов
- Анализирование данных
- Расчет статистики по группе: общее количество студентов, общий средний балл, а также поиск лучшего и худшего студентов по успеваемости
- Сортировка списка студентов по, имени или среднему баллу
- Экспорт - Выгрузка ТОП-N лучших студентов в отдельный CSV-файл
main.py: Отвечает за отображение меню, прием ввода от пользователя и вызов соответствующих функций из других модулей.processing.py: Содержит все функции для манипуляции данными: добавление, удаление, сортировка, расчет статистики.io_utils.py:Отвечает за чтение и запись данных из/в CSV-файлы.models.py: Определяет структуру данных (классStudent), с которым работают все остальные части приложения.errors.py: Определяет собственную иерархию ошибок
- python: 3.9+
- зависимости описаны в: requirements-dev
python -m lab.mainpytestВ ходе выполнения работы были выполнены все поставленные цели и задачи:
- Научился проектировать функции и процедуры, разбивать программу на модули и пакеты
- Научился применять коллекции Python
- Освоил обработку ошибок и исключений, проектирование своих исключений
- Научился работать с файлами, и с форматом CSV
- Освноил базовую автоматизацию и тестирование проекта

