@The_Beginer

Как найти номера групп в порядке убывания успеваемости студентов?

У меня есть класс

class Studinfo:

     def __init__(self,surn,numbgroup,markgeometry,markalgebra,markinformatika):
          self.surn=surn
          self.numbgroup=numbgroup
          self.markgeometry=markgeometry
          self.markalgebra=markalgebra
          self.markinformatika=markinformatika


И вот по заданию найти номера групп и отсортировать их в порядке убывания успеваемости студентов
Мне непонятен алгоритм
Как можно работая с атрибутом класса numbgroup выполнить данную задачу?

Я знаю только такой способ, как создать список,назвать его номером группы и загрузить туда студентов с их оценками(я про атрибуты surn,markgeometry,markalgebra,markinformatika) ориентируясь по атрибуту numbgroup.
Но numbgroup вводится с клавиатуры и поэтому делать через if и добавлять в список не получится.
Так как группу можно ввести любую c клавиатуры.

Мне интересен сам алгорим, код я сам напишу.
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 3
@Wispik
1. создаешь список со студентами (например, stud_list)
2. сортируешь его по нужному ключу stud_list.sort(key=lambda x: x.markgeometry)
3. Выбираешь id из отсортированного списка
Ответ написан
@Atomnory
1. В класс Studinfoдобавляешь метод, который будет возвращать numbgroup
2. Создаёшь list, в котором будет хранится tuple(numbgroup, средний балл группы) для каждой группы.
3. В основном блоке делаешь алгоритм вычисляющий средний балл всех студентов группы.
4. Заполняешь tupleзначениями из метода п.1 и алгоритма п.3.
5. Сортируешь все tuple в list по среднему баллу.
6. Готово
Ответ написан
@Nickellick
1. Есть же какой-то список студентов, где хранятся объекты класса, верно?
2. Не совсем понятно само задание - с клавиатуры вводится номер группы, после этого нужно вывести оценки всех студентов? Оценка считается по среднему или отдельно по каждому предмету?
3. Если номер группы вводится пользователем, то что значит "найти номера групп"?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы