Я решил создать класс, описывающий банкомат, и расскажу вам о моем опыте. Начну с того, что набор купюр, находящихся в банкомате, можно задать тремя свойствами⁚ количеством купюр номиналом 20, 50 и 100.Для начала создал конструктор с тремя параметрами – количеством купюр каждого номинала. Например⁚
python
class Bankomat⁚
def __init__(self, n20, n50, n100)⁚
self.n20 n20
self.n50 n50
self.n100 n100
Для добавления денег в банкомат я реализовал метод `add_money`. Он принимает на вход количество купюр каждого номинала и добавляет их к текущему состоянию банкомата. Например⁚
python
def add_money(self, n20_add, n50_add, n100_add)⁚
self.n20 n20_add
self.n50 n50_add
self.n100 n100_add
Теперь перейду к функции снятия денег. Метод `withdraw_money` принимает на вход сумму денег и возвращает булевое значение – успешность выполнения операции. Если в банкомате достаточно денег их выдача возможна, метод распечатывает каким количеством купюр какого номинала выдается сумма. Например⁚
python
def withdraw_money(self, amount)⁚
if amount % 20 ! 0⁚
return False
num_100 min(amount // 100, self.n100)
amount — num_100 * 100
num_50 min(amount // 50, self.n50)
amount — num_50 * 50
num_20 min(amount // 20, self.n20)
amount — num_20 * 20
if amount 0⁚
self.n20 — num_20
self.n50 — num_50
self.n100 — num_100
print(f″Выдано {num_100} купюр номиналом 100٫ {num_50} купюр номиналом 50٫ {num_20} купюр номиналом 20″)
return True
else⁚
return False
Таким образом, я создал класс, описывающий банкомат, с методами для добавления и снятия денег. Благодаря этому классу можно управлять наличием денег в банкомате и осуществлять операции по их снятию. Этот опыт помог мне лучше понять принципы работы банкоматов и написать более гибкий и удобный код для решения подобных задач.