/
RecentFellowKid
/
OOP
Обзор
Документация
Войти
/
RecentFellowKid
/
OOP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
second_task.py
63 строки
2 KB
RecentFellowKid
Decoration
11 авг 2025, 03:11
11 авг 2025, 03:11
2b8d5fa
Код
Авторство
О чём код?
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 rate_lecturer(self, lecturer, course, grade): if not isinstance(lecturer, Lecturer): return 'Ошибка: Указанный человек не является лектором' if course not in self.courses_in_progress and course not in self.finished_courses: return f'Ошибка: Студент не записан на курс {course}' if course not in lecturer.courses_attached: return f'Ошибка: Лектор не ведет курс {course}' if not (1 <= grade <= 10): return 'Ошибка: Оценка должна быть от 1 до 10' if course in lecturer.grades: lecturer.grades[course].append(grade) else: lecturer.grades[course] = [grade] 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 = {} class Reviewer(Mentor): def rate_hw(self, student, course, grade): if isinstance(student, Student) and course in self.courses_attached and course in student.courses_in_progress: if course in student.grades: student.grades[course] += [grade] else: student.grades[course] = [grade] else: return 'Ошибка' lecturer = Lecturer('Иван', 'Иванов') reviewer = Reviewer('Пётр', 'Петров') student = Student('Алёхина', 'Ольга', 'Ж') student.courses_in_progress += ['Python', 'Java'] lecturer.courses_attached += ['Python', 'C++'] reviewer.courses_attached += ['Python', 'C++'] print(student.rate_lecturer(lecturer, 'Python', 7)) print(student.rate_lecturer(lecturer, 'Java', 8)) print(student.rate_lecturer(lecturer, 'С++', 8)) print(student.rate_lecturer(reviewer, 'Python', 6)) print(lecturer.grades) # {'Python': [7]}