Python

Напишите программу в Python, пожалуйста

У вас есть корзина с грушами и несколько детей. Нужно поделить груши так, чтобы никому из детей не было обидно, то есть поровну.
Напишите класс PearsBasket, экземпляр которого при инициализации получает целое число – количество груш в корзине.
В классе должны быть методы:
pb // n – деление нацело, возвращает список объектов класса со значениями количества груш в каждой корзинке, если есть остаток – он должен находиться в дополнительной последней корзинке.
pb % n – получение остатка от деления, возвращает число: остаток от деления.
pb_1+ pb_2 – складываются две корзинки, получается новая корзина;
pb_1 - n – число вычитается из корзинки, если там есть такое количество груш; если нет – вычитается сколько есть, остается 0;
__str__ – возвращает количество груш в корзине;
__repr__ – возвращает строку в формате PearsBasket(<количество>).

Ввод:
pb = PearsBasket(17)
array = pb // 4
print(array)
pb_2 = PearsBasket(13)
pb_3 = pb + pb_2
print(pb_3)
print(pb_3 % 7)
pb – 2
print([pb])

Вывод :
[PearsBasket(4), PearsBasket(4), PearsBasket(4), PearsBasket(4), PearsBasket(1)]
30
2
[PearsBasket(15)]
Vitaliy Siryy
Vitaliy Siryy
85
 class PearsBasket: 
def __init__(self, pears):
self.pears = pears

def __str__(self):
return str(self.pears)

def __repr__(self):
return f"PearsBasket({self.pears})"

def __floordiv__(self, n):
quotient = self.pears // n
remainder = self.pears % n
result = [PearsBasket(quotient)] * n
if remainder > 0:
result.append(PearsBasket(remainder))
return result

def __mod__(self, n):
return self.pears % n

def __add__(self, other):
total_pears = self.pears + other.pears
return PearsBasket(total_pears)

def __sub__(self, n):
if self.pears >= n:
self.pears -= n
else:
n = self.pears
self.pears = 0
return n


# Пример использования класса
pb = PearsBasket(17)
array = pb // 4
print(array)

pb_2 = PearsBasket(13)
pb_3 = pb + pb_2
print(pb_3)

print(pb_3 % 7)

pb - 2
print([pb])
Артур Чистяков
Артур Чистяков
2 415
Лучший ответ
class PearsBasket:
def __init__(self, pears):
self.pears = pears

def __str__(self):
return str(self.pears)

def __repr__(self):
return f"PearsBasket({self.pears})"

def __floordiv__(self, n):
quotient = self.pears // n
remainder = self.pears % n
result = [PearsBasket(quotient)] * n
if remainder > 0:
result.append(PearsBasket(remainder))
return result

def __mod__(self, n):
return self.pears % n

def __add__(self, other):
total_pears = self.pears + other.pears
return PearsBasket(total_pears)

def __sub__(self, n):
if self.pears >= n:
self.pears -= n
else:
n = self.pears
self.pears = 0
return n


# Пример использования класса
pb = PearsBasket(17)
array = pb // 4
print(array)

pb_2 = PearsBasket(13)
pb_3 = pb + pb_2
print(pb_3)

print(pb_3 % 7)

pb - 2
print([pb])