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

Мальчик-осёл

12.05.2020, 00:53. Показов 2131. Ответов 2

Студворк — интернет-сервис помощи студентам
Сделал программу, 3 теста проходит и ошибка, которую не пишет, что делать?



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

Напишите класс Осел (Donkey), экземпляр d которого инициализируется с аргументами: имя (того мальчика, которым он когда-то был, строка), какой груз он может везти (целое число, ведь осёл теперь должен работать, повеселился, хватит) и сколько лет ему предстоит быть ослом, прежде, чем он снова сможет стать мальчиком (целое число). Класс реализует (инкапсулирует) функциональность:

str(d) — возвращает свое имя в виде Donkey-boy <имя>, <грузоподъёмность>;
d.cry() — кричит (возвращает строку) Eeyore столько раз, сколько лет ему осталось пробыть в ослиной шкуре;
d.work_hard(amount) — усердно трудится. Каждые 5 единиц труда уменьшают количество лет на 1, пока не станет 0, дальше не уменьшается. Но если значение переданного труда отрицательное, то количество лет увеличивается на 2;
d.carry(load) — проверяет, может ли он перевезти груз, указанный в качестве аргумента. Возвращает булево значение;
экземпляры класса могут сравниваться. Сначала сравнивается количество оставшихся лет: чем меньше, тем лучше, такой экземпляр считается больше; затем сравнивается грузоподъемность, затем по имени в алфавитном порядке.
Пример 1
Ввод Вывод
from solution import Donkey

d = Donkey('Pinoccio', 10, 5)
print(d)
print(d.cry())
d.work_hard(16)
print(d.cry())
print(d.carry(10))
Donkey-boy Pinoccio, 10
EeyoreEeyoreEeyoreEeyoreEeyore
EeyoreEeyore
True
Пример 2
Ввод Вывод
from solution import Donkey

d1 = Donkey('Pinoccio', 10, 5)
d2 = Donkey('Philip', 10, 3)
print(d1, d2, sep='\n')
print(d2 > d1)
d1.work_hard(11)
print(d1 <= d2)
print(d2.cry())
Donkey-boy Pinoccio, 10
Donkey-boy Philip, 10
True
False
EeyoreEeyoreEeyore

Мой код
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
58
59
60
#!/usr/bin/env python3
 
 
class Donkey:
    def __init__(self, name, load_int, years_int):
        self._load_int = load_int
        self._years_int = years_int
        self._name = name
 
    def __str__(self):
        return f'Donkey-boy {self._name}, {self._load_int}'
 
    def cry(self):
        return 'Eeyore' * self._years_int
 
    def work_hard(self, amount):
        if amount < 0:
            self._years_int *= 2
        else:
            k = amount // 5
            self._years_int -= k
            if self._years_int < 0:
                self._years_int = 0
 
    def carry(self, load):
        return self._load_int <= load
 
    def __lt__(self, other):
        ret = self._years_int > other._years_int
        if self._load_int != other._load_int:
            ret = ret and (self._load_int < other._load_int)
        if self._name != other._name:
            ret = ret and (self._name > other._name)
 
        return ret
 
    def __le__(self, other):
        return self.__lt__(other) or self.__eq__(other)
 
    def __eq__(self, other):
        return (
            self._load_int == other._load_int
            and self._years_int == other._years_int
            and self._name == other._name
        )
 
    def __ne__(self, other):
        return not self.__eq__(other)
 
    def __gt__(self, other):
        ret = self._years_int < other._years_int
        if self._load_int != other._load_int:
            ret = ret and (self._load_int > other._load_int)
        if self._name != other._name:
            ret = ret and (self._name < other._name)
 
        return ret
 
    def __ge__(self, other):
        return self.__gt__(other) or self.__eq__(other)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.05.2020, 00:53
Ответы с готовыми решениями:

Мальчик-осел
В книгах мудрости написано, что все ленивые мальчишки, которые отвернулись от книг и учителей и проводят свои дни только в играх и...

Градиент и (осёл)
Какой код надо написать, что бы осёл понимал градиент??? background: -moz-linear-gradient(#a4a4a4, #d1d1d1); background:...

осёл и лошадь
Сделать из ослика бегущую лошадь.

2
0 / 0 / 0
Регистрация: 19.03.2020
Сообщений: 1
15.06.2020, 09:12
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Donkey:
    def __init__(self, name, gruz, srok):
        self.load = gruz
        self.years = srok
        self.imya = name
 
    def __str__(self):
        return "Donkey-boy " + str(self.imya) + " " + str(self.load)
 
    def cry(self):
        return "Eeyore" * self.years
 
    def work_hard(self, amount):
        if amount < 0:
            self.years += 2
        else:
            k = amount // 5
            self.years -= k
            if self.years < 0:
                self.years = 0
 
    def carry(self, ves):
        return self.load >= ves
0
0 / 0 / 0
Регистрация: 01.07.2020
Сообщений: 1
01.07.2020, 15:14
попробуй такой вариант. У меня вроде прошел тесты.
Описал на всякий случай все методы сравнения поэтому получилось длинно.

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
class Donkey:
    def __init__(self, nm, gruz, prd):
        self.nm = nm
        self.gruz = gruz
        self.prd = prd
 
    def __str__(self):
        return 'Donkey-boy ' + self.nm + ', ' + str(self.gruz)
 
    def cry(self):
        return 'Eeyore' * self.prd
 
    def work_hard(self, amount):
        if amount < 0:
            self.prd = self.prd + 2
        else:
            self.prd = self.prd - amount // 5
            if self.prd < 0:
                self.prd = 0
 
    def carry(self, load):
        if load > self.gruz:
            return False
        else:
            return True
 
    def __eq__(self, other):
        if self.nm == other.nm and self.gruz == other.gruz and self.prd == other.prd:
            return True
        else:
            return False
 
    def __ne__(self, other):
        if self.nm != other.nm or self.gruz != other.gruz or self.prd != other.prd:
            return True
        else:
            return False
 
    def __gt__(self, other):
        if self.prd < other.prd:
            return True
        elif self.prd > other.prd:
            return False
        else:
            if self.gruz > other.gruz:
                return True
            elif self.gruz < other.gruz:
                return False
            else:
                if self.nm > other.nm:
                    return True
                else:
                    return False
 
    def __lt__(self, other):
        if self.prd > other.prd:
            return True
        elif self.prd < other.prd:
            return False
        else:
            if self.gruz < other.gruz:
                return True
            elif self.gruz > other.gruz:
                return False
            else:
                if self.nm < other.nm:
                    return True
                else:
                    return False
 
    def __ge__(self, other):
        if self.prd < other.prd:
            return True
        elif self.prd > other.prd:
            return False
        else:
            if self.gruz > other.gruz:
                return True
            elif self.gruz < other.gruz:
                return False
            else:
                if self.nm >= other.nm:
                    return True
                else:
                    return False
 
    def __le__(self, other):
        if self.prd > other.prd:
            return True
        elif self.prd < other.prd:
            return False
        else:
            if self.gruz < other.gruz:
                return True
            elif self.gruz > other.gruz:
                return False
            else:
                if self.nm <= other.nm:
                    return True
                else:
                    return False
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.07.2020, 15:14
Помогаю со студенческими работами здесь

Сравнить, кто больше слон, лошадь, собака, осел, обезьяна
Используя Windows Forms необходимо сравнить, кто больше слон, лошадь, собака, осел, обезьяна. Слон и собака-&gt; слон больше и тд ...

Сколько минут длилось никелирование, если на изделие осел слой никеля заданной массы
Сколько минут длилось никелирование, если на изделие осел слой никеля массой m = 1,8 г, а процесс никелирования проводился при силе тока I...

Мальчик и снежинки
У мальчика есть лист бумаги размера w × h. Он собирается вырезать из него снежинки. Заготовкой каждой снежинки должен быть квадратный лист....

Циклы WHILE и REPEAT: Сколько дней сможет работать осёл, и какой суммарный груз он перевезёт за это время?
Осёл может перенести груз, равный половине своего веса. Вес осла – m кг. В первый день на осла нагрузили a кг, а каждый следующий день...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru