Что нужно сделать
Реализуйте модель с именем Student, содержащую поля: «ФИ», «Номер группы», «Успеваемость» (список из пяти элементов). Затем создайте список из десяти студентов (данные о студентах можете придумать свои или запросить их у пользователя) и отсортируйте его по возрастанию среднего балла. Выведите результат на экран.
Что оценивается
- Результат вычислений корректен.
- input содержит корректные приглашения для ввода.
- Модели реализованы в стиле ООП, основной функционал описан в методах классов и в отдельных функциях.
- Сообщения о процессе получения результата осмысленны и понятны для пользователя.
- Переменные, функции и собственные методы классов имеют значащие имена, не
a
,b
,c
,d
.
class Student:
def __init__(self, name, group, progress):
self.name = name
self.group = group
self.progress = progress
def info(self):
print(f'Студент: {self.name} | Группа: {self.group} | Ср. балл: {self.middle()}')
def middle(self):
count = 0
mid = 0
for i in self.progress:
count += 1
mid += i
mid = round((mid / count), 1)
return mid
def sortedstudents(list_of_students):
sorted_list = sorted(list_of_students, key=lambda elem: elem.middle())
for stud in sorted_list:
stud.info()
stud_list = [Student('Bob', '2F', [5, 4, 5, 3, 3]),
Student('Mike', '2F', [4, 4, 4, 3, 2]),
Student('Mila', '2F', [3, 2, 3, 2, 2]),
Student('Bill', '2A', [3, 3, 3, 2, 2]),
Student('John', '2A', [3, 3, 1, 2, 2]),
Student('Jacob', '2A', [3, 4, 4, 4, 2]),
Student('Victor', '2C', [3, 3, 1, 2, 2]),
Student('Natasha', '2C', [2, 2, 3, 2, 2]),
Student('Ella', '2C', [3, 5, 5, 2, 2])]
sortedstudents(stud_list)