Skip to content

ajsmt/AB_Python_Lab_2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

Цели работы

  • Освоить базовые конструкции Python: условия и циклы.
  • Научиться проектировать функции и процедуры, разбивать программу на модули и пакеты.
  • Применить коллекции Python (списки, словари) для хранения и обработки данных.
  • Освоить обработку ошибок и исключений, проектирование собственных исключений.
  • Научиться работать с файлами: чтение/запись, формат CSV.
  • Освоить базовую автоматизацию тестирования с помощью pytest.

Реализованный функционал

  • Загрузка и сохранение - чтение и запись списков студуентов в формате CSV (причем работа как с заголовками так и без них)
  • Управление списком студентов
    • Добавление нового студента
    • Удаление студента по уникальному id
    • Обновление списка оценок для студента
    • Просмотр полного списка студентов
  • Анализирование данных
    • Расчет статистики по группе: общее количество студентов, общий средний балл, а также поиск лучшего и худшего студентов по успеваемости
    • Сортировка списка студентов по, имени или среднему баллу
  • Экспорт - Выгрузка ТОП-N лучших студентов в отдельный CSV-файл

Описание модуля lab

  • main.py: Отвечает за отображение меню, прием ввода от пользователя и вызов соответствующих функций из других модулей.
  • processing.py: Содержит все функции для манипуляции данными: добавление, удаление, сортировка, расчет статистики.
  • io_utils.py:Отвечает за чтение и запись данных из/в CSV-файлы.
  • models.py: Определяет структуру данных (класс Student), с которым работают все остальные части приложения.
  • errors.py: Определяет собственную иерархию ошибок

Запуск

Требования

  • python: 3.9+
  • зависимости описаны в: requirements-dev

Запуск

python -m lab.main

Пример работы

Результаты тестирования

pytest

Выводы

В ходе выполнения работы были выполнены все поставленные цели и задачи:

  • Научился проектировать функции и процедуры, разбивать программу на модули и пакеты
  • Научился применять коллекции Python
  • Освоил обработку ошибок и исключений, проектирование своих исключений
  • Научился работать с файлами, и с форматом CSV
  • Освноил базовую автоматизацию и тестирование проекта

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages