Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 1 / 0
Регистрация: 24.11.2020
Сообщений: 138

Бесконечный пир

24.06.2023, 21:31. Показов 1101. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Алиса шла по длинному залу, искоса поглядывая на бесконечный стол, за которым уместилось чуть ли не полсотни гостей. Кого тут только не было! Зверьки, птички, какие-то непонятные существа и даже живые цветы.
«Просто замечательно, что гости пригласились сами, – подумала Алиса, – я бы ни за что не догадалась, кого следует приглашать».

Напишите класс Пир (Feast), экземпляр которого инициализируется с аргументами:
– чей это пир;
– количество приглашенных гостей;
– множество гостей, по умолчанию пустое.

Класс должен реализовывать следующую функциональность (fs – экземпляр класса):
– add_guest(person) – добавить гостя – он добавляется в множество, а количество гостей уменьшается на 1; если количество становится равным нулю, то гости во множество добавляются, а количество дальше не уменьшается;
– remove_guest(person) – вычеркнуть гостя – если такой гость был в множестве, он удаляется, а количество увеличивается на 1. Если его не было, ничего не изменяется;
– get_guests() – возвращает список гостей, упорядоченный по алфавиту без повторений;
– экземпляры класса можно сравнивать: сначала по количеству гостей, затем по длине множества, затем по имени хозяина; для этого должны быть реализованы методы сравнения;
__str__ – возвращает строковое представление в виде:
Feast of <имя>, number of invited guests is <количество>

Пример 1

Ввод Вывод
Python
1
2
3
4
5
6
7
8
ft = Feast('John', 5, {'Humpty', 'Dumpty'})
ft.add_guest('Hatter')
ft.add_guest('Rabbit')
print(ft)
ft.remove_guest('Queen')
ft.remove_guest('Hatter')
print(ft)
print(*ft.get_guests())
Feast of John, number of invited guests is 3
Feast of John, number of invited guests is 4
Dumpty Humpty Rabbit

Пример 2

Ввод Вывод
Python
1
2
3
4
5
6
7
8
9
ft = Feast('John', 7)
ft1 = Feast('Jack', 7)
print(ft >= ft1)
ft.add_guest('Lizard')
ft1.add_guest('Flamingo')
print(ft < ft1)
ft.remove_guest('Owl')
ft1.remove_guest('Flamingo')
print(ft <= ft1)
True
False
True
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2023, 21:31
Ответы с готовыми решениями:

Полярный пир
A. Пир на полярной станции Ограничение времени 2 секунды Ограничение памяти 256.0 Мб Ввод стандартный ввод или input.txt Вывод...

Бесконечный ввод и подсчет положительных чисел
С клавиатуры вводятся целые числа, до тех пор пока не будет введена строка &quot;стоп&quot;. Посчитать количество положительных чисел, среди...

Бесконечный ввод
Задание: Дано натуральное число. (Вводится с клавиатуры). Определить сколько раз в нем встречается минимальная цифра. Например, для числа...

1
32 / 24 / 11
Регистрация: 03.06.2023
Сообщений: 56
28.06.2023, 21:53
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class Feast:
 
    def __init__(self, owner: str, guests_num: int, guests: set | None = None) -> None:
        self.owner = owner
        self.guests_num = guests_num
        self.guests = guests or set()
 
    def add_guest(self, person: str) -> None:
        self.guests.add(person)
        if self.guests_num > 0:
            self.guests_num -= 1
 
    def get_guests(self) -> list:
        return sorted(self.guests)
 
    def remove_guest(self, person: str) -> None:
        if person in self.guests:
            self.guests.remove(person)
            self.guests_num += 1
 
    def __eq__(self, other: 'Feast') -> bool:
        return (self.guests_num, len(self.guests), self.owner) == (other.guests_num, len(other.guests), other.owner)
 
    def __ne__(self, other: 'Feast') -> bool:
        return not self.__eq__(other)
 
    def __gt__(self, other: 'Feast') -> bool:
        if self.guests_num == other.guests_num:
            if len(self.guests) == len(other.guests):
                return self.owner > other.owner
            return len(self.guests) > len(other.guests)
        return self.guests_num > other.guests_num
 
    def __lt__(self, other: 'Feast') -> bool:
        return self.__le__(other) and self.__ne__(other)
 
    def __ge__(self, other: 'Feast') -> bool:
        return not self.__lt__(other)
 
    def __le__(self, other: 'Feast') -> bool:
        return not self.__gt__(other)
 
    def __str__(self) -> str:
        return f'Feast of {self.owner}, number of invited guests is {self.guests_num}'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2023, 21:53
Помогаю со студенческими работами здесь

Бесконечный цикл
Какое самое маленькое число делится нацело на все числа от 1 до 20? Дело в том, что ничего не выводится. Вроде break для цикла while...

Бесконечный цикл
tokenlist = s = input() s=s+' ' fstsym = &quot;*/&quot; sndsym = &quot;+-&quot; allsym = '+-*/' tempstr = &quot;&quot; global i ...

Бесконечный повторный ввод
Всем, доброго дня! Не так давно изучаю питон. Помогите дописать программу. Нужно угадать два числа, пользователь вводит число, если оно...

Бесконечный скроллинг страницы вк
Здравствуйте. Работал с vk api,пока не столкнулся с ограничением метода users.search. Даже с offset=1000 больше 1000 не получишь. ...

Прервать бесконечный цикл
Добрый день У меня получается бесконечный цикл подскажите как сделать0 чтобы например пользователь ввел слово какое то или может кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru