Форум сайта python.su
Всем привет.
Прошу помочь с решением задачи.
Исходные данные.
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 = {}
class Mentor:
def __init__(self, name, surname):
self.name = name
self.surname = surname
self.courses_attached =
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 +=
else:
student.grades =
else:
return ‘Ошибка’
best_student = Student('Ruoy', ‘Eman’, ‘your_gender’)
best_student.courses_in_progress +=
cool_mentor = Mentor('Some', ‘Buddy’)
cool_mentor.courses_attached +=
cool_mentor.rate_hw(best_student, ‘Python’, 10)
cool_mentor.rate_hw(best_student, ‘Python’, 10)
cool_mentor.rate_hw(best_student, ‘Python’, 10)
print(best_student.grades)
Задание № 1. Наследование
У нас уже есть класс преподавателей и класс студентов. Студентов пока оставим без изменения, а вот преподаватели бывают разные, поэтому теперь класс Mentor должен стать родительским классом, а от него нужно реализовать наследование классов Lecturer (лекторы) и Reviewer (эксперты, проверяющие домашние задания). Очевидно, имя, фамилия и список закрепленных курсов логично реализовать на уровне родительского класса.
Задание № 2. Атрибуты и взаимодействие классов.
Реализовать возможность только Reviewer выставлять оценки студентам за домашние задания! А что могут делать лекторы? Получать оценки за лекции от студентов Реализуйте метод выставления оценок лекторам у класса Student (оценки по 10-балльной шкале, хранятся в атрибуте-словаре у Lecturer, в котором ключи – названия курсов, а значения – списки оценок). Лектор при этом должен быть закреплен за тем курсом, на который записан студент.
Задание № 3. Полиморфизм и магические методы
Перегрузите магический метод __str__ у всех классов.
У проверяющих он должен выводить информацию в следующем виде:
print(some_reviewer)
Имя: Some
Фамилия: Buddy
У лекторов:
print(some_lecturer)
Имя: Some
Фамилия: Buddy
Средняя оценка за лекции: 9.9
А у студентов так:
print(some_student)
Имя: Ruoy
Фамилия: Eman
Средняя оценка за домашние задания: 9.9
Курсы в процессе изучения: Python, Git
Завершенные курсы: Введение в программирование
Реализуйте возможность сравнивать (через операторы сравнения) между собой лекторов по средней оценке за лекции и студентов по средней оценке за домашние задания.
Задание № 4. Полевые испытания
Создайте по 2 экземпляра каждого класса, вызовите все созданные методы, а также реализуйте две функции:
для подсчета средней оценки за домашние задания по всем студентам в рамках конкретного курса (в качестве аргументов принимаем список студентов и название курса);
для подсчета средней оценки за лекции всех лекторов в рамках курса (в качестве аргумента принимаем список лекторов и название курса).
Офлайн
Что даст этот курс? Если ты не знаешь основ программирования, зачем тебе его проходить? Ведь это всё равно что младенец стал бы проходить курс по теории какой-нибудь высшей математики типа матанализа. Где он применит потом этот матанализ, даже если хоть что-то уловит, если круг его интересов лежит максимум в песочнице в детском саду и куличиках в ней?
kashapovinТы даже код не можешь на форум правильно отправить. Тут теги code защищают о редактирования текста движком форума, и это является лакмусовой бумажкой, показывающей уровень того, кто пришёл с вопросом.
Завершенные курсы: Введение в программирование
kashapovinОно стёрлось, а ты даже не понял этого. Это говорит о твоём уровне. Он не достиг той высоты, чтобы проходить этот курс по “ООП”, в котором от ООП одно лишь название.if course in student.grades: student.grades += else: student.grades = else: return 'Ошибка'
Отредактировано py.user.next (Апрель 20, 2022 15:22:14)
Офлайн
Благодарю за комментарий.
Не заметил, что информация частично загрузилась.
Курс как раз раз и прохожу курс Python c нуля в котором даются основы, а ООП является частью данного курса. И да, ООП и основы Python для меня пока только название, т.к. прохожу курс с начала апреля 2022.
Успехов
Офлайн
kashapovinЯ имею в виду, что и для создателя этого курса “ООП” - это только название. ООП вообще начинается с разложения информационной системы, которую ты проектируешь, на абстракции и механизмы. Потом это дело, когда оно появилось и приняло отчётливую форму, переводится на объекты и классы, работаешь в этих понятиях. Объекты начинают представлять и выражать абстракции, а операции одних объектов над другими начинают представлять и выражать механизмы, классы при этом являются большими объединениями одинаковых объектов. Дальше строится иерархия классов с одним корневым классом, от которого происходят классы потомки. Эта иерархия классов создаёт прочность программы, всё работает как одно целое и ничто не болтается нигде скраю как не пришей кобыле хвост. Система удерживает саму себя. Как человеческий организм удерживается и не распадается сам по себе, в том числе и при ходьбе.
И да, ООП и основы Python для меня пока только название, т.к. прохожу курс с начала апреля 2022.
kashapovinООП - это не для новичков. Это дополнение к обычному структурному программированию. Добавление этой парадигмы придаёт мощи проектируемым программам. Если же ты будешь проходить подобные курсы, где бабки выкалачивают просто всякими льстивыми уроками “ой! как у вас всё хорошо получается! вы очень способны!”. Кстати, педагогического образования у этих “преподавателей” этих школ нет практически никогда; они даже не знают, что такое план урока, что для объяснения материала у доски нужна обычная деревянная длинная указка, потому что не видно ничего и преподаватель доску загораживает, когда что-то там пальцем пытается показать или говорит “ну, вон, та вот буква A, видите? возле буквы B которая?” - какие-то такие моменты примитивные они не знают. Ну и результат этого “обучения” такой же смешной. А именно никакой. Их ученики как приходят нулями, так и уходят нулями. Опустошается только кошелёк немного. Много нельзя, а то все убегут на такой же курс подешевле у кого-нибудь другого, такого же припадоватиля. Так что, что ты там проходишь, не знаю даже. Что это даст?
Курс как раз раз и прохожу курс Python c нуля в котором даются основы, а ООП является частью данного курса.
Отредактировано py.user.next (Апрель 21, 2022 10:12:17)
Офлайн