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

Классы и функции

06.05.2020, 17:39. Показов 1018. Ответов 1

Студворк — интернет-сервис помощи студентам
Пожалуйста помогите найти ошибку!
Вот мой код:

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

Ввод:

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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2020, 17:39
Ответы с готовыми решениями:

Классы и Функции: чем все таки отличается класс от функции?
Ребята всем привет. Извините за такое название темы. На работе появилась необходимость писать на других языках. Стал внедряться в ООП. ...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов pri
Братаны, выручайте! Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin
Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

1
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
06.05.2020, 18:03
Измените этот метод и ваша программа пройдёт данный тест.
Python
1
2
3
    def __ge__(self, other):
        return (self.range_flight, self.carrying, self.name) >=\
            (other.range_flight, other.carrying, other.name)
Но это не решит всю проблему, так как остальные тесты (если они есть), ваша программа не пройдёт. У вас в методах сравнения написан бред. Там даже есть несуществующий атрибут (self.fligh).
Измените остальные методы сравнения по аналогии с этим методом. И всё будет ОК.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2020, 18:03
Помогаю со студенческими работами здесь

Классы и функции
Вопрос по поводу &quot;идеологии&quot; написания классов. Как лучше писать реализации? Есть ли смысл создавать функции, которые по сути...

Классы и функции
Если в пхп можжно разбить большую задачу на функции, зачем придумали ООП, чтоб разбивать её на классы?

классы,функции
1. Плоская геометрическая фигура а) круг (целочислен. координаты центра окружности, радиус) б) прямоугольник(целочисл. координаты...

Функции в классы
Доброго времени суток. Нужна помощь. Было задание сделать программу, я ее сделал, но в задании указано что нужно использовать ООП. А с...

Классы (дружественные функции)
Почему в функции min_element(); не инициализирована k? Я же описал функцию в классе MIN? Программа просто выводит минимальный элемент...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru