Назад
Задание на 10.03.2025
Задания выполняются с помощью таблиц work_types.csv и student_marks.csv. Код для чтения данных из таблиц см. в ноутбуке “Таблицы”.
Задание 1
- По таблице student_marks.csv определите количество учеников в классе и составьте алфавитный список.
- Создайте список, куда будете добавлять имена учеников
- Пройдите циклом по всем данным в списке словарей
- Из имени и фамилии в каждой строке таблицы склейте полное имя
- Проверьте, есть ли оно в вашем списке
- Добавьте его туда
- Отсортируйте список и выведите построчно на экран
Задание 2
Определите, для каких предметов есть данные об оценках.
- Аналогично первому заданию
Задание 3
Для каждого ученика определите средний балл по каждому предмету.
- Пройдите циклом по списку учеников
- Для каждого ученика пройдите вторым циклом по списку предметов
- Составьте список оценок ученика по предмету
- Вычислите среднее значение (сумма, делённая на количество элементов)
ИЛИ
- Задайте пустой словарь
grades_dict
- Пройдите циклом по всем строкам таблицы
- Определите имя ученика и запишите в переменную
student_name
- Если его нет в словаре
grades_dict
, добавьте его туда, значением сделайте пустой словарь. Тогда у вас получится словарь словарей
- Определите название предмета и запишите в переменную
subject
- Если его нет в маленьком словаре
grades_dict[student_name]
, добавьте его туда, значением сделайте пустой список
- В список
grades_dict[student_name][subject]
с помощью .append()
добавьте оценку (в виде float
)
- Задайте новый цикл, где вы будете перебирать все
student_name
внутри grades_dict
- Задайте внутренний цикл, где вы будете перебирать все
subject
внутри grades_dict[student_name]
- Для каждого списка
grades_dict[student_name][subject]
сложите в нём все значения и поделите на длину списка
Задание 4
Улучшите данные о среднем балле, используя значения весов из таблицы work_types.csv.
- Аналогично предыдущему, но при составлении списка оценок нужно составить параллельный список, содержащий веса каждой оценки
- Среднее значение будет вычисляться как сумма значений первого списка, делённая на сумму значений второго списка
Задание 5
Найдите ученика с максимальным средним баллом по информатике.
- Используя код выше, составьте словарь, где ключами будут имена учеников, а значениями – словари, в которых ключи – названия предметов, а значения – средние оценки
average_grades_dict = {"Голубева Марина": {"информатика": 4.5, ...}, ...}
- Используя функцию
max()
и параметр key
, найдите в этом словаре x
, для которого значение average_grades_dict[x]["информатика"]
будет максимальным