Не работает код, ошибка и ТЗ в прикрепленных скринах.

Hxdhx

Новичок
Пользователь
Июн 2, 2023
2
0
1
Python:
import random as rnd
class Coffee:

    def __init__(self, name, price):
        self.name = name
        self.price = price

class CoffeeMachine:
    support_number = rnd.randint(10000000000, 99999999999)

    def __init__(self, bank, coffee_list):
        self.bank = bank
        self.coffee_list = []
        self.coffee_list_position = Coffee.name

    def takeCoffee(self, payment=float(), pick_position=int()):
        if pick_position in coffee_list:
            print(f'Вы выбрали {Coffee.name}')
            if payment < Coffee.price:
                print(f'Недостаточно денег!')
            elif payment > Coffee.price:
                if CoffeeMachine.bank < payment - Coffee.price:
                    print(f'В аппарате закончилась сдача. Наберите {CoffeeMachine.support_number}, '
                          f'сдача будет зачислена на ваш номер».')
                else:
                    print(f'Заберите сдачу!')
                    Coffee.bank = Coffee.bank - (payment - Coffee.price)
                    print(f'Начинаем готовить {Coffee.name}')
            else:
                print(f'Начинаем готовить {Coffee.name}')
        else:
            print(f'«Ошибка! Проверьте номер товарной позиции!')

latte = Coffee("Латте", 6)
espresso = Coffee("Эспрессо", 8)
americano = Coffee("Американо", 7)
cappuccino = Coffee("Капучино", 6)

my_coffee_list = [latte, espresso, americano, cappuccino]

my_machine_1 = CoffeeMachine(bank = 10, coffee_list = my_coffee_list)
print(my_machine_1.coffee_list)

my_machine_1.takeCoffee(5, 1)
my_machine_1.takeCoffee(5, 10)
my_machine_1.takeCoffee(20, 1)
my_machine_1.takeCoffee(15, 0)
my_machine_1.takeCoffee(7, 2)

for i in CoffeeMachine.coffee_list:
    print(i.name)
 

Вложения

  • Снимок экрана 2023-06-02 221138.png
    Снимок экрана 2023-06-02 221138.png
    211,5 КБ · Просмотры: 1
  • 2.png
    2.png
    8,8 КБ · Просмотры: 1

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
372
107
43
Наверное как-то так. Не тестил на все случаи
Python:
class Coffee:
    def __init__(self, name: str, price: int):
        self.name = name
        self.price = price


class CoffeeMachine:
    support_number = 88005553535
    coffee_list_position = []

    def __init__(self, bank: int, coffee_list: list):
        self.bank = bank
        self.coffee_list = coffee_list
        for obj in self.coffee_list:
            self.coffee_list_position.append(obj.name)

    def takeCoffee(self, payment: float, pick_position: int):
        if pick_position in range(len(self.coffee_list)):
            print(f'Вы выбрали {self.coffee_list_position[pick_position]}')
            if payment < self.coffee_list[pick_position].price:
                print(f'Недостаточно денег!')
            elif payment > self.coffee_list[pick_position].price:
                if self.bank < payment - self.coffee_list[pick_position].price:
                    print(f'В аппарате закончилась сдача. Наберите {self.support_number}, '
                          f'сдача будет зачислена на ваш номер.')
                else:
                    print(f'Получите сдачу!')
                    self.bank = self.bank - (payment - self.coffee_list[pick_position].price)
                print(f'Начинаем готовить {self.coffee_list_position[pick_position]}')
            else:
                print(f'Начинаем готовить {self.coffee_list_position[pick_position]}')
        else:
            print(f'Ошибка! Проверьте номер товарной позиции!')


latte = Coffee("Латте", 6)
espresso = Coffee("Эспрессо", 8)
americano = Coffee("Американо", 7)
cappuccino = Coffee("Капучино", 6)

my_coffee_list = [latte, espresso, americano, cappuccino]
my_machine_1 = CoffeeMachine(bank=10, coffee_list=my_coffee_list)

my_machine_1.takeCoffee(5, 1)
my_machine_1.takeCoffee(5, 10)
my_machine_1.takeCoffee(20, 1)
my_machine_1.takeCoffee(15, 0)
my_machine_1.takeCoffee(7, 2)
 
  • Мне нравится
Реакции: Hxdhx

Hxdhx

Новичок
Пользователь
Июн 2, 2023
2
0
1
Наверное как-то так. Не тестил на все случаи
Python:
class Coffee:
    def __init__(self, name: str, price: int):
        self.name = name
        self.price = price


class CoffeeMachine:
    support_number = 88005553535
    coffee_list_position = []

    def __init__(self, bank: int, coffee_list: list):
        self.bank = bank
        self.coffee_list = coffee_list
        for obj in self.coffee_list:
            self.coffee_list_position.append(obj.name)

    def takeCoffee(self, payment: float, pick_position: int):
        if pick_position in range(len(self.coffee_list)):
            print(f'Вы выбрали {self.coffee_list_position[pick_position]}')
            if payment < self.coffee_list[pick_position].price:
                print(f'Недостаточно денег!')
            elif payment > self.coffee_list[pick_position].price:
                if self.bank < payment - self.coffee_list[pick_position].price:
                    print(f'В аппарате закончилась сдача. Наберите {self.support_number}, '
                          f'сдача будет зачислена на ваш номер.')
                else:
                    print(f'Получите сдачу!')
                    self.bank = self.bank - (payment - self.coffee_list[pick_position].price)
                print(f'Начинаем готовить {self.coffee_list_position[pick_position]}')
            else:
                print(f'Начинаем готовить {self.coffee_list_position[pick_position]}')
        else:
            print(f'Ошибка! Проверьте номер товарной позиции!')


latte = Coffee("Латте", 6)
espresso = Coffee("Эспрессо", 8)
americano = Coffee("Американо", 7)
cappuccino = Coffee("Капучино", 6)

my_coffee_list = [latte, espresso, americano, cappuccino]
my_machine_1 = CoffeeMachine(bank=10, coffee_list=my_coffee_list)

my_machine_1.takeCoffee(5, 1)
my_machine_1.takeCoffee(5, 10)
my_machine_1.takeCoffee(20, 1)
my_machine_1.takeCoffee(15, 0)
my_machine_1.takeCoffee(7, 2)
Благодарю
 

Форум IT Специалистов