Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 4, 2022 04:30:44

Rikin
Зарегистрирован: 2020-11-14
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

Приветствую,

выполняю задание:
у некого проекта есть список волонтёров. Ниже в программе я обозначил его 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 ???



Прошу помощи


Отредактировано Rikin (Янв. 4, 2022 04:41:46)

Офлайн

#2 Янв. 4, 2022 10:43:54

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

Rikin

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

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

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

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

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

В общем, учитесь грамотно формулировать мысли, без этого дальше никуда



Офлайн

#3 Янв. 4, 2022 14:50:09

Rikin
Зарегистрирован: 2020-11-14
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

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

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

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

 class Guests(Volunteers):


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

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


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

class Guests(Volunteers):

Отредактировано Rikin (Янв. 4, 2022 14:57:42)

Офлайн

#4 Янв. 4, 2022 14:55:18

Rikin
Зарегистрирован: 2020-11-14
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

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

 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 (Янв. 4, 2022 14:59:14)

Офлайн

#5 Янв. 4, 2022 15:09:59

Rikin
Зарегистрирован: 2020-11-14
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

Вот еще из ранее рассмотренного примера:

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

Отредактировано Rikin (Янв. 4, 2022 15:10:26)

Офлайн

#6 Янв. 4, 2022 17:34:36

Rikin
Зарегистрирован: 2020-11-14
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

FishHook
А иначе к Амаяку Акопяну, он умеет из списка волонтеров получать список гостей по неведомому закону.

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

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

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



Что до консоли - то используется среда PyCharm , а в этой среде после нажатия кнопки Run - результат выводится в консоли.
Вот в Python Shell результат исполнения программы выводится в дополнительно выскакивающем окне. А в PyCharm результат выскакивает в консоли.
То есть - в данном случае это детали, которые не влияют на программный код. Запускать программу можно и в PyCharm, и в Python Shell - это наверняка не принципиально в данном случае.

Отредактировано Rikin (Янв. 4, 2022 17:36:25)

Офлайн

#7 Янв. 4, 2022 17:42:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

    
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}'



Офлайн

#8 Янв. 4, 2022 23:57:57

Rikin
Зарегистрирован: 2020-11-14
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

спасибо, Конечно круто вы коды создаёте.

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

     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 - было бы веселее

Отредактировано Rikin (Янв. 5, 2022 01:05:49)

Офлайн

#9 Янв. 5, 2022 01:48:31

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

Выбрать нескольких гостей из списка. Задействуя наследование

Rikin
Прошу помощи
Короче, ты взял курс, который слишком продвинутый для тебя. Он не будет эффективен.

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

Видимо, тебе нужно подобрать курс для начала. Тот, кто подбирал тебе курс, подобрал тебе неправильный курс. Поэтому ты и спотыкаешься на каждом шаге и сам ничего не можешь. В правильно подобранном курсе ты всё сможешь сам делать и учиться при этом чему-то новому.



Отредактировано py.user.next (Янв. 5, 2022 01:50:26)

Офлайн

#10 Янв. 5, 2022 11:02:52

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Выбрать нескольких гостей из списка. Задействуя наследование

Rikin
Дорогой друг, вас очень сложно понять, чего же вы хотите. То-ли непоследовательно изучаете материал, и поэтому у вас задача на ООП, а вы не знаете как выполнить поиск в списке и отсюда всякая терминология вроде “выуживания строк”, то-ли у вас сложности с письменным русским языком и вы не можете корректно сформулировать мысль. Без обид, но я просто не понимаю чего вы хотите получить в итоге. У вас есть задание в том виде, как вам его дал преподаватель?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version