Найти - Пользователи
Полная версия: Выбрать нескольких гостей из списка. Задействуя наследование
Начало » Центр помощи » Выбрать нескольких гостей из списка. Задействуя наследование
1 2 3
Rikin
Приветствую,

выполняю задание:
у некого проекта есть список волонтёров. Ниже в программе я обозначил его vol_datas
Требуется написать программу, которая позволяла бы составлять список нескольких гостей. У меня - идея вывести в результат гостей 2 и 3 из списка vol_datas

Решите задачу с помощью метода конструктора и примените один из принципов наследования.

При выводе в консоль вы должны получить формат: “Мистер Х, Москва, статус “консультант”

—————————————————————

Я тут начал писать программу, конечно код не готов и содержит заготовки-излишки которые могут не понадобится, но это - калька для решения (заданный стиль).

 class Volunteers:
    def __init__(self, name, place, status):
        self.name = name
        self.place = place
        self.status = status
    vol_datas = [
        {"name": "Ivanov", "place": "Moscow", "status": 'Consultant'},
        {"name": "Pertov", "place": "St. Petersburg", "status": 'Mentor'},
	{"name": "Schwarz", "place": "Viena", "status": 'Trainer'}
    ]
obj_lst = []
for vol_data in vol_datas:
    obj_lst.append(Volunteers(**vol_datas))                                            # raspakowka spiska?
class Guests(Volunteers):                                    # это обязательный пункт в программе: наследование 
                                                                         # класса должно быть задействовано
	...........
# def Persons_obj (...)                              ????????
for i in range(1, 3):                               # idea: we select line 1 and line 2 from list Vol_data to output in result
    return("name of guest:", Vol_data[i].name, "place:", Vol_data[i].place, "status:", Vol_data[i].status)
# print(??... Persons_obj....)									                   как-то tak ???



Прошу помощи


FishHook
Rikin

Вы сами себя-то понимаете?

Rikin
у некого проекта есть список волонтёров. Ниже в программе я обозначил его vol_datas
Требуется написать программу, которая позволяла бы составлять список нескольких гостей.

Это не постановка задачи, это какой-то бессвязный бред. Мы же вроде инженерную дисциплину тут изучаем, как вы анализируете задачу, если вы её внятно и непротиворечиво изложить не можете? Правильно сформулированные цели - половина успеха. Давайте еще раз, только вдумчиво, ок? Что дано, что нужно получить, какие ограничения, какие известны правила преобразований. А иначе к Амаяку Акопяну, он умеет из списка волонтеров получать список гостей по неведомому закону.

Rikin
примените один из принципов наследования
перечислите, пожалуйста, принципы наследования

Rikin
При выводе в консоль вы должны получить формат
Rikin
Требуется написать программу, которая позволяла бы составлять список нескольких гостей.
в задании нет ничего про вывод на консоль. Составление списка не требует операций ввода-вывода. При чем здесь консоль

В общем, учитесь грамотно формулировать мысли, без этого дальше никуда
Rikin
Задача составлена не учеником и всё что было сформулировано в условии задания - передано мной здесь в теме (уж никак не менее).
А так как у меня и у самого всё свежо - я не могу давать 100%-достоверных ограничений и предписывать правила преобразований. Я начал писать код - как могу сейчас и т.о. предлагаю направление решения.
Ранее было сказано - подходить к решению творчески, на своё усмотрение (если что) и с учётом показанных ранее примеров.

Поэтому - то чего не до конца ясно - доформулируем сами (в случае неясности с постановкой задач, ограничений и применяемых методов - предлагаю применить допущения на наше усмотрение - я же еще не знаю пока о возможностях решения), во всяком случае попробовать бы…

А следы от приведенных ранее примеров - я интегрировал в мою наброску/кальку для будущего кода, например наследование:

 class Guests(Volunteers):


Итак, дан список волонтёров vol_datas
Из этого списка выберем несколько гостей (позиция 1 и 2) “Pertov” и “Schwarz” и требуется подать на выход эти две позиции в формате:

“Мистер Х, Москва, статус “консультант”
“Мистер У, Вена, статус “консультант”


Требуется задействовать в решении наследование и произвести с помощью наследующего класса какую-то (пока не ясную для меня, но каким-то образом вспомогательную для решения) процедуру внутри этого наследования. Тут Вы лучше меня знаете что полезного для решения в это наследование можно впаковать. Если нет ясности - можно попросить вас допоставить условие, рамки: что в том наседовании могло бы быть - на ваше усмотрение?
Смысл задачи - закрепить наследование по образу и подобию приведенного ранее примера, где создаётся новый класс Guests и он наследуется от предждесозданного класса Volunteers

class Guests(Volunteers):
Rikin
Вот один ученик попытался выполнить эту задачу - по кратчайшему пути (без наследования).
Ход, очевидно верный, но надо бы задействовать наследование.

 class Param:
    def __init__(self, name, place, status):
        self.name = name
        self.place = place
        self.status = status
    def __str__(self):
        return f'Клиент: {self.name}. Место жительства:{self.place}. Статус:{self.status}'
Client1 = Param(name='Ivanov', place='Moscow', status='Teacher')
Client2 = Param(name='Петров', place='Paris', status='тренер')
Client3 = Param(name='Сидиров', place='London', status='консультант')
print(Client1.__str__())
print(Client2.__str__())
print(Client3.__str__())

, а учитель ему отвечает:

в целом функционирует, но в этой задаче нужно было применить наследование
То есть, должен был быть класс Человек (к примеру), и класс-потомок Статус
Rikin
Вот еще из ранее рассмотренного примера:

Мы создавали объект ХХХ как экземпляр наследующего класса УУУУ (в нашем случае это бы был некой обьект наследующего класса Guests), но при этом ему доступны как атрибуты родительского класса (у нас родительский класс это class Volunteers), так и его методы (то есть еще и методы)….
Rikin
FishHook
А иначе к Амаяку Акопяну, он умеет из списка волонтеров получать список гостей по неведомому закону.

Поскольку вЕдомый закон получения списка нескольких гостей из переписи волонтёров vol_datas не обозначен в условии, то …условие дополним сами:

из переписи волонтёров vol_datas выберем несколько гостей (позиция 1 и 2) “Pertov” и “Schwarz” и требуется подать на выход эти две позиции в формате:

“Мистер Х, Москва, статус “консультант”
“Мистер У, Вена, статус “консультант”



Что до консоли - то используется среда PyCharm , а в этой среде после нажатия кнопки Run - результат выводится в консоли.
Вот в Python Shell результат исполнения программы выводится в дополнительно выскакивающем окне. А в PyCharm результат выскакивает в консоли.
То есть - в данном случае это детали, которые не влияют на программный код. Запускать программу можно и в PyCharm, и в Python Shell - это наверняка не принципиально в данном случае.
FishHook
    
class Person:
    def __init__(self, name: str):
        self.name = name
    def __str__(self):
        return f'{self.name}'
class Volunteer(Person):
    def __init__(self, name: str, city: str, status: str):
        super().__init__(name)
        self.city = city
        self.status = status
    def __str__(self):
        return f'{self.name}, {self.city}, f{self.status}'
Rikin
спасибо, Конечно круто вы коды создаёте.

Но… у нас есть исходный полный список волонтёров

     vol_datas = [
        {"name": "Ivanov", "place": "Moscow", "status": 'Consultant'},            # Position 0
        {"name": "Pertov", "place": "St. Petersburg", "status": 'Mentor'},         # Position 1
	{"name": "Schwarz", "place": "Viena", "status": 'Trainer'}                    # Position 2

и из списка vol_datas хотелось бы выудить избранных гостей: позиции из списка то есть строки по “Pertov” и “Schwarz” и выдать их на выход (форматом: как в строке):

         {"name": "Pertov", "place": "St. Petersburg", "status": 'Mentor'},         # Position 1
	{"name": "Schwarz", "place": "Viena", "status": 'Trainer'}                    # Position 2

Но этот момент у нас пока что не интегрирован в программный код. У нас пока - словно этого списка vol_datas и дальнейшего выуживания из него строк с “Pertov” и “Schwarz” - нет совсем. А со списком vol_datas и с выуженными из него строками 1 и 2 - было бы веселее
py.user.next
Rikin
Прошу помощи
Короче, ты взял курс, который слишком продвинутый для тебя. Он не будет эффективен.

То есть у тебя примерно знание десяти букв алфавита из тридцати трёх, а ты пытаешься изучить сложносочинённые и сложноподчинённые предложения. Так что, что надо делать? Надо продолжать изучать буквы, пока весь алфавит не выучишь; надо читать тексты вслух, чтобы из букв формировались слоги, а из слогов - слова; надо писать диктанты из слов, расставляя правильно ударения в них. Это то, что надо делать сейчас, чтобы у тебя получалось что-то вменяемое. А вот изучать грамматические основы в предложениях; изучать, сколько их и как их определять; изучать, где причина и следствие, а где они находятся на одном уровне; изучать, какие союзы, соединяющие части предложения, бывают, - это всё, наоборот, надо отложить на потом, которое ещё настанет неизвестно когда. Это то, что не надо изучать сейчас, потому что это не даст ничего.

Видимо, тебе нужно подобрать курс для начала. Тот, кто подбирал тебе курс, подобрал тебе неправильный курс. Поэтому ты и спотыкаешься на каждом шаге и сам ничего не можешь. В правильно подобранном курсе ты всё сможешь сам делать и учиться при этом чему-то новому.
FishHook
Rikin
Дорогой друг, вас очень сложно понять, чего же вы хотите. То-ли непоследовательно изучаете материал, и поэтому у вас задача на ООП, а вы не знаете как выполнить поиск в списке и отсюда всякая терминология вроде “выуживания строк”, то-ли у вас сложности с письменным русским языком и вы не можете корректно сформулировать мысль. Без обид, но я просто не понимаю чего вы хотите получить в итоге. У вас есть задание в том виде, как вам его дал преподаватель?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB