Ce script fait partie des projets Python de HyperSkill.
j'ai fait toute la formation python de Hyperskill pendant le Confinement 2020.
# Write your code here | |
class CoffeMachine: | |
def __init__(self): | |
# water, milk, beans, cups, money | |
self.inventory = [400, 540, 120, 9, 550] | |
# x water, x milk, x beans, cups, price | |
espresso = (250, 0, 16, 1, 4) | |
latte = (350, 75, 20, 1, 7) | |
cappuccino = (200, 100, 12, 1, 6) | |
self.coffee_list = (espresso, latte, cappuccino) | |
def menu(self, action): | |
if action == "buy": | |
self.buy() | |
elif action == "fill": | |
self.fill() | |
elif action == "take": | |
self.take() | |
elif action == "remaining": | |
self.status() | |
elif action == "exit": | |
exit(0) | |
def status(self): | |
print(f"The coffee machine has:\n" | |
f"{self.inventory[0]} of water\n" | |
f"{self.inventory[1]} of milk\n" | |
f"{self.inventory[2]} of coffee beans\n" | |
f"{self.inventory[3]} of disposable cups\n" | |
f"{self.inventory[4]} of money\n") | |
def fill(self): | |
texts = ["Write how many ml of water do you want to add:", | |
"Write how many ml of milk do you want to add:", | |
"Write how many grams of coffee beans do you want to add:", | |
"Write how many disposable cups of coffee do you want to add:"] | |
for i in range(4): | |
self.inventory[i] += int(input(texts[i])) | |
def take(self): | |
print(f"I gave you ${self.inventory[4]}") | |
self.inventory[4] = 0 | |
def buy(self): | |
coffee = input("What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino, back - return menu:") | |
if coffee == "back": | |
return | |
proportion = self.coffee_list[int(coffee) - 1] | |
check = [self.inventory[i] > proportion[i] for i in range(4)] | |
if all(check): | |
print("I have enough resources, making you a coffee!") | |
for i in range(4): | |
self.inventory[i] -= proportion[i] | |
self.inventory[4] += proportion[4] | |
else: | |
missing = [i for i, x in enumerate(check) if not x] | |
ressource = ["water", "milk", "beans", "cups"] | |
for i in missing: | |
print(f"Sorry, not enough {ressource[i]}!") | |
coffe_machine = CoffeMachine() | |
while True: | |
user_action = input("Write action (buy, fill, take, remaining, exit):") | |
coffe_machine.menu(user_action) |
cyvax - 2024