/
MaratPetr
/
homework
Обзор
Документация
Войти
/
MaratPetr
/
homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
python123.py
69 строк
3 KB
MaratPetr
дз по классам
21 апр 2025, 12:43
21 апр 2025, 12:43
06be5ec
Код
Авторство
О чём код?
class Student: def init(self, name, surname, gender): self.name = name self.surname = surname self.gender = gender self.finished_courses = [] self.courses_in_progress = [] self.grades = {} def __str__(self): avg = self.average_grade() return (f"Имя: {self.name}\nФамилия: {self.surname}\n" f"Средняя оценка за дз: {avg}\n" f"Курсы в процессе изучения: {', '.join(self.courses_in_progress)}\n" f"Завершенные курсы: {', '.join(self.finished_courses)}") def average_grade(self): all_grades = sum([sum(g) for g in self.grades.values()], 0) count = sum([len(g) for g in self.grades.values()]) return round(all_grades / count, 2) if count else 0 def __lt__(self, other): # сравнение студентов по средней оценке if not isinstance(other, Student): return NotImplemented return self.average_grade() < other.average_grade() def rate_hs(self, lector, course, grade): if isinstance(lector, Lecturer) and course in self.courses_in_progress and course in lector.courses_attached: lector.grades.setdefault(course, []).append(grade) else: return 'Ошибка' class Mentor: def init(self, name, surname): self.name = name self.surname = surname self.courses_attached = [] class Lecturer(Mentor): def init(self, name, surname): super().init(name, surname) self.grades = {} def average_grade(self): all_grades = sum([sum(g) for g in self.grades.values()], 0) count = sum([len(g) for g in self.grades.values()]) return round(all_grades / count, 2) if count else 0 def __str__(self): avg = self.average_grade() return f"Имя: {self.name}\nФамилия: {self.surname}\nСредняя оценка за лекции: {avg}" def __lt__(self, other): # сравнение лекторов if not isinstance(other, Lecturer): return NotImplemented return self.average_grade() < other.average_grade() class Reviewer(Mentor): def init(self, name, surname): super().init(name, surname) def __str__(self): return f"Имя: {self.name}\nФамилия: {self.surname}" def rate_hw(self, student, course, grade): if isinstance(student, Student) and course in self.courses_attached and course in student.courses_in_progress: student.grades.setdefault(course, []).append(grade) else: return 'Ошибка' # homework