Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 10

Задача Превращение

20.04.2021, 21:32. Показов 5012. Ответов 1

Студворк — интернет-сервис помощи студентам
Напишите класс Ifrit, экземпляр которого инициализируется с аргументами:
– имя;
– размер;
– в кого превратился.

Класс должен реализовывать функциональность (ifr – экземпляр класса):

– change_object(value) – поменять объект для превращения; если его длина меньше, чем у прежнего, то размер уменьшается на эту разность, но не меньше, чем до 10, если нет, то объект изменяется, размер нет;

– из экземпляра класса можно вычесть число: ifr -= number; размер уменьшается на это число, если при этом он не станет меньше 10, в противном случае ничего не происходит;

– экземпляр класса можно вызвать без аргументов, возвращается строка, в кого превратился с большой буквы (остальные маленькие), повторённая размер // 10 раз;

__str__ – возвращает строку:

Ifrit <name> of <size> feet in the guise of <transform>

– экземпляры можно сравнивать: сначала по размеру, затем по длине строки, в кого превратился, затем по имени по алфавиту; для этого нужно реализовать методы сравнения: <, >, <=, >=, ==, !=.

Пример 1
Ввод Вывод
ifr = Ifrit("Hazrul", 150, "cloud")
ifr.change_object("dog")
print(ifr)
ifr -= 98
print(ifr)
print(ifr())
Ifrit Hazrul of 148 feet in the guise of dog
Ifrit Hazrul of 50 feet in the guise of dog
DogDogDogDogDog
Пример 2
Ввод Вывод
ifr = Ifrit("Hazrul", 12, "cloud")
ifr1 = Ifrit("Dalziel", 12, "mountain")
print(ifr > ifr1)
ifr1.change_object("cloud")
print(ifr, ifr1, sep='\n')
print(ifr < ifr1, ifr >= ifr1)
False
Ifrit Hazrul of 12 feet in the guise of cloud
Ifrit Dalziel of 10 feet in the guise of cloud
False True
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2021, 21:32
Ответы с готовыми решениями:

Превращение пешки
Всем здравствуйте,давно меня тут не было,но появилась проблема с задачей... По шахматным правилам при достижении пешкой...

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

Превращение строки в условие
Здравствуйте дорогие коллеги. Я начинающий программист на python. Мне нужна помощь с решением проблемы &quot;превращения&quot; строки в...

1
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
21.04.2021, 11:49
Лучший ответ Сообщение было отмечено Maglash как решение

Решение

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
45
46
47
48
49
50
51
52
53
54
55
56
57
class Ifrit:
    def __init__(self, name, size, object):
        self.name = name
        self.size = size
        self.object = object
 
    def change_object(self, value):
        if len(value) < len(self.object):
            self -= len(self.object) - len(value)
        self.object = value
 
    def __isub__(self, value):
        if self.size - value > 10:
            self.size -= value
        else:
            self.size = 10
        return self
 
    def __str__(self):
        return 'Ifrit {} of {} feet in the guise of {}'.format(self.name,
                                                               self.size,
                                                               self.object)
 
    def __call__(self):
        return self.object.title() * (self.size // 10)
 
    def __eq__(self, other):
        return (self.size == other.size
                and len(self.object) == len(other.object)
                and self.name.lower() == other.name.lower())
 
    def __ne__(self, other):
        return (self.size != other.size
                or len(self.object) != len(other.object)
                or self.name.lower() != other.name.lower())
 
    def __lt__(self, other):
        if self.size != other.size:
            return self.size < other.size
        elif len(self.object) != len(other.object):
            return len(self.object) < len(other.object)
        else:
            return self.name.lower() < other.name.lower()
 
    def __gt__(self, other):
        if self.size != other.size:
            return self.size > other.size
        elif len(self.object) != len(other.object):
            return len(self.object) > len(other.object)
        else:
            return self.name.lower() > other.name.lower()
 
    def __le__(self, other):
        return self.size <= other.size
 
    def __ge__(self, other):
        return self.size >= other.size
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2021, 11:49
Помогаю со студенческими работами здесь

Превращение списка в строку
Выдает ошибку: sequence item 0: expected str instance, int found Ведь в список можно заносить все типы переменных, так в чем...

Превращение файла в лист. Питон
Здравствуйте, не могу нормально открыть текстовый файл, не понимаю что происходит Nms=open('nums.txt', 'r') print(&quot;Вот ваши...

Превращение отрицательного числа в 0 (без if, for, max и т.д.)
Как отрицательное число превратить в 0 без if, for, max и других функций, используя только арифметические выражения (-, +, //, %, и т.д.)?

Обратное Z превращение
Есть задача реализовать обратное Z превращение, можете подсказать как его реализовать?

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru