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

Реализовать класс Голубь (Pigeon)

12.05.2020, 16:59. Показов 2458. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Срочно найдите ошибку
В это время над Пиноккио пролетал большой Голубь. Он замер с распростёртыми крыльями в воздухе и крикнул:

– Скажи-ка, дружок, что ты там делаешь внизу?

– Ты разве не видишь? Я плачу! Отнеси меня к моему бедному отцу, я буду просить его простить меня, его неразумного, бездушного сына!

Напишите класс Голубь (Pigeon), экземпляр p которого инициализируется с аргументами: имя (строка), дальность полёта и грузоподъёмность (целые числа). Класс реализует (инкапсулирует) функциональность:

str(p) — возвращает своё имя в формате Pigeon <имя>, <грузоподъёмность>;
p.eat(food) — подкрепляется. За каждые 10 порций еды грузоподъёмность увеличивается на 1. Если количество порций не кратно 10, остаток хранится в запасе и может быть учтён при следующей еде. Ничего не возвращает;
p.carry(load, range) — проверяет, может ли он донести переданный в качестве аргумента груз на заданную дальность. Возвращает True, если может, и False, если хоть что-то меньше;
p.flap_wings() — машет крыльями. При каждом вызове меняется возвращаемое значение: то up, то down. Первый раз up;
экземпляры класса можно сравнивать. Сначала сравниваются по грузоподъёмности, потом по дальности, потом по длине имени, потом по алфавиту.

мой код:
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 Pigeon:
 
    def __init__(self, name, range_flight, carrying):
        self.name = name
        self.range_flight = range_flight
        self.carrying = carrying
        self.reserve = 0
        self.wave_ = ['up', 'down']
        self.wave_index = 0
 
    def __str__(self):
        return f'{self.__class__.__name__} {self.name}, {self.carrying}'
 
    def eat(self, food):
        food += self.reserve
        self.carrying += food // 10
        self.reserve = food % 10
 
    def carry(self, load, range_):
        return (load < self.carrying) and (range_ < self.carrying)
 
    def flap_wings(self):
        if self.wave_index:
            wave_ = self.wave_[self.wave_index]
            self.wave_index -= 1
            return wave_
        wave_ = self.wave_[self.wave_index]
        self.wave_index += 1
        return wave_
 
    def __gt__(self, other):
        if self.carrying != other.carrying:
            return self.carrying > self.carrying
        elif self.range_flight != other.range_flight:
            return self.range_fligh > other.range_fligh
        return self.name > other.name
 
    def __lt__(self, other):
        if self.range_flight != other.range_flight:
            return self.carrying < self.carrying
        elif self.range_flight != other.range_flight:
            return self.range_fligh < other.range_fligh
        return self.name < other.name
 
    def __ge__(self, other):
        if self.range_flight < other.range_flight:
            return self.carrying >= self.carrying
        elif self.range_flight < other.range_flight:
            return self.range_fligh >= other.range_fligh
        return self.name >= other.name
 
    def __le__(self, other):
        if self.range_flight > other.range_flight:
            return self.carrying <= self.carrying
        elif self.range_flight > other.range_flight:
            return self.range_fligh <= other.range_fligh
        return self.name <= other.name
требуемые ответ:
Pigeon Johnas, 10
Pigeon Calman, 10
True
False
Pigeon Johnas, 14
Pigeon Calman, 12
False

ответ который получил:
Pigeon Johnas, 10
Pigeon Calman, 10
True
True
Pigeon Johnas, 14
Pigeon Calman, 12
False
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2020, 16:59
Ответы с готовыми решениями:

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

Реализовать класс String, перегрузка операторов, реализовать конструкторы, фрэнд-функции
Реализовать класс String для работы со строками символов. Перегрузить для объектов класса String операторы «!» (пуст ли объект ...

Необходимо реализовать шаблонный класс Array, и грамотно реализовать push_back
Необходимо реализовать шаблонный класс Array, параметризируемый типом хранимых элементов. Класс Array представляет собой...

30
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 16
12.05.2020, 18:01  [ТС]
Студворк — интернет-сервис помощи студентам
Ввод:
Python
1
2
3
4
5
6
7
8
9
10
11
12
from solution import Pigeon
 
p1 = Pigeon('Johnas', 100, 10)
p2 = Pigeon('Calman', 100, 10)
print(p1, p2, sep='\n')
print(p1 > p2)
p2.eat(13)
print(p1 >= p2)
p1.eat(42)
p2.eat(7)
print(p1, p2, sep='\n')
print(p1.carry(90, 15))
Правильный ответ:
Pigeon Johnas, 10
Pigeon Calman, 10
True
False
Pigeon Johnas, 14
Pigeon Calman, 12
False

Выдает:
Pigeon Johnas, 10
Pigeon Calman, 10
True
True
Pigeon Johnas, 14
Pigeon Calman, 12
False
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
12.05.2020, 18:06
Цитата Сообщение от RabPeska Посмотреть сообщение
return self.carrying > self.carrying
себя с собой сравниваешь? не, это верно начинать с себя, но тут надо с другим голубем сравнивать
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 16
12.05.2020, 18:08  [ТС]
Можете скинуть полностью исправленный код?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
12.05.2020, 18:10
RabPeska, нет конечно, я теб точно показал ошибку. Почитай как сравнивать надо между собой объекты.
там аргумент other для чего, как думаешь?

Добавлено через 28 секунд
Цитата Сообщение от RabPeska Посмотреть сообщение
def __gt__(self, other):
if self.carrying != other.carrying:
return self.carrying > self.carrying
elif self.range_flight != other.range_flight:
return self.range_fligh > other.range_fligh
return self.name > other.name
вот тут смотри внимательно
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 16
12.05.2020, 18:13  [ТС]
У меня времени нет на исправление, вы явно быстрее сделаете
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
12.05.2020, 18:19
RabPeska,
конечно быстрее, только мотива то нет, понимаешь?
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 16
12.05.2020, 18:20  [ТС]
Мотив помочь мне у меня осталось 25 минут. мне надо перечитывать и думать, а вма дважды скопировать код и поменять пару строчек
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
12.05.2020, 18:25
Цитата Сообщение от RabPeska Посмотреть сообщение
Найдите ошибку
ты попросил.
Я нашел ошибку и даже пояснил в чем она и как исправить - сравнить селф с озерс.
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 16
12.05.2020, 18:27  [ТС]
я сравнил - результат тот же
0
0 / 0 / 0
Регистрация: 12.05.2020
Сообщений: 2
12.05.2020, 20:30
Не в этом ошибка. Программа не правильный ответ выводит в сравнении
Python
1
print(p1 >= p2)
А за
Python
1
>=
отвечает
Python
1
def __ge__(self, other):
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
12.05.2020, 20:53
Добавлено через 53 секунды
Цитата Сообщение от nikitaa12 Посмотреть сообщение
отвечает
PythonВыделить код
1
def __ge__(self, other):
а там у него тот же косяк, разница то какая?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2020, 20:53

Реализовать класс Complex для работы с комплексными числами. Реализовать операции с ним
Народ, помогите, с классы не понимаю Комплексное число представляются парой действительных чисел (а, b), где а - действительная часть,...

Реализовать класс Товары. Реализовать метод печати стоимости товара и его наименования
Реализовать класс Товары, с полями Наименование, Артикул, Стоимость. Реализовать метод печати стоимости товара и его наименования....

Реализовать класс, инкапсулирующий адрес. Реализовать методы вывода адреса в строку в российском формате
№1 Реализовать класс, инкапсулирующий адрес. Реализовать методы вывода адреса в строку в российском формате (индекс, страна, город,...

Реализовать класс Матрица; реализовать методы, которые меняют местами первую и последнюю строку матрицы
Написать программу, которая выполняет действия над матрицами (n x m), меняет местами первую и последнюю строку в матрице; столбцы с...

Класс: Реализовать класс Matrix - матрица, на основе двухмерного массива размерности M на N...
1) Реализовать класс Matrix - матрица, на основе двух-мерного целочисленного массива int размерности M на N (кол-во строк и кол-во...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. Сразу отвечу: А в PvP с ним. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru