Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2022 12:23:54

kashapovin
Зарегистрирован: 2022-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачи

Всем привет.
Прошу помочь с решением задачи.

Исходные данные.
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 экземпляра каждого класса, вызовите все созданные методы, а также реализуйте две функции:

для подсчета средней оценки за домашние задания по всем студентам в рамках конкретного курса (в качестве аргументов принимаем список студентов и название курса);
для подсчета средней оценки за лекции всех лекторов в рамках курса (в качестве аргумента принимаем список лекторов и название курса).

Офлайн

#2 Апрель 20, 2022 15:18:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Помогите решить задачи

Что даст этот курс? Если ты не знаешь основ программирования, зачем тебе его проходить? Ведь это всё равно что младенец стал бы проходить курс по теории какой-нибудь высшей математики типа матанализа. Где он применит потом этот матанализ, даже если хоть что-то уловит, если круг его интересов лежит максимум в песочнице в детском саду и куличиках в ней?

kashapovin
Завершенные курсы: Введение в программирование
Ты даже код не можешь на форум правильно отправить. Тут теги code защищают о редактирования текста движком форума, и это является лакмусовой бумажкой, показывающей уровень того, кто пришёл с вопросом.

Вот в этом фрагменте ты даже не заметил не то что отступы исчезнувшие, а то что после равно всё постиралось. Ты даже не прочитал то, что ты сюда отправил.
kashapovin
  
if course in student.grades:
student.grades +=
else:
student.grades =
else:
return 'Ошибка'
Оно стёрлось, а ты даже не понял этого. Это говорит о твоём уровне. Он не достиг той высоты, чтобы проходить этот курс по “ООП”, в котором от ООП одно лишь название.



Отредактировано py.user.next (Апрель 20, 2022 15:22:14)

Офлайн

#3 Апрель 20, 2022 19:58:28

kashapovin
Зарегистрирован: 2022-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачи

Благодарю за комментарий.
Не заметил, что информация частично загрузилась.
Курс как раз раз и прохожу курс Python c нуля в котором даются основы, а ООП является частью данного курса. И да, ООП и основы Python для меня пока только название, т.к. прохожу курс с начала апреля 2022.

Успехов

Офлайн

#4 Апрель 21, 2022 10:04:48

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Помогите решить задачи

kashapovin
И да, ООП и основы Python для меня пока только название, т.к. прохожу курс с начала апреля 2022.
Я имею в виду, что и для создателя этого курса “ООП” - это только название. ООП вообще начинается с разложения информационной системы, которую ты проектируешь, на абстракции и механизмы. Потом это дело, когда оно появилось и приняло отчётливую форму, переводится на объекты и классы, работаешь в этих понятиях. Объекты начинают представлять и выражать абстракции, а операции одних объектов над другими начинают представлять и выражать механизмы, классы при этом являются большими объединениями одинаковых объектов. Дальше строится иерархия классов с одним корневым классом, от которого происходят классы потомки. Эта иерархия классов создаёт прочность программы, всё работает как одно целое и ничто не болтается нигде скраю как не пришей кобыле хвост. Система удерживает саму себя. Как человеческий организм удерживается и не распадается сам по себе, в том числе и при ходьбе.
Вот это ООП.

А вот это вот “давайте изучим полиморфизм, переопределите магические методы” - это для чего? (Автор ещё и не ориентируется, использует термин “перегрузите метод”, в то время как в питоне нет перегрузки, есть только переопределение.) Вот ты написал это, а куда это присобачить-то потом, если у тебя объектной модели нет никакой и ты не знаешь даже, что ты, собственно, пытаешься реализовать. Ты просто не знаешь, что ты делаешь, а он тебе предлагает “делай это не знаешь что и дальше, перегружай методы!”.

Потом будешь ходить и говорить всем “я знаю шаблоны ООП!”, а для чего они тебе, ты даже знать не будешь, потому что никакого ООП у тебя нет, одно название только.

kashapovin
Курс как раз раз и прохожу курс Python c нуля в котором даются основы, а ООП является частью данного курса.
ООП - это не для новичков. Это дополнение к обычному структурному программированию. Добавление этой парадигмы придаёт мощи проектируемым программам. Если же ты будешь проходить подобные курсы, где бабки выкалачивают просто всякими льстивыми уроками “ой! как у вас всё хорошо получается! вы очень способны!”. Кстати, педагогического образования у этих “преподавателей” этих школ нет практически никогда; они даже не знают, что такое план урока, что для объяснения материала у доски нужна обычная деревянная длинная указка, потому что не видно ничего и преподаватель доску загораживает, когда что-то там пальцем пытается показать или говорит “ну, вон, та вот буква A, видите? возле буквы B которая?” - какие-то такие моменты примитивные они не знают. Ну и результат этого “обучения” такой же смешной. А именно никакой. Их ученики как приходят нулями, так и уходят нулями. Опустошается только кошелёк немного. Много нельзя, а то все убегут на такой же курс подешевле у кого-нибудь другого, такого же припадоватиля. Так что, что ты там проходишь, не знаю даже. Что это даст?



Отредактировано py.user.next (Апрель 21, 2022 10:12:17)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version