Advertisement
Guest User

Untitled

a guest
Jun 14th, 2022
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.56 KB | None | 0 0
  1. MENU = {
  2.     "espresso": {
  3.         "ingredients": {
  4.             "water": 50,
  5.             "coffee": 18,
  6.         },
  7.         "cost": 1.5,
  8.     },
  9.     "latte": {
  10.         "ingredients": {
  11.             "water": 200,
  12.             "milk": 150,
  13.             "coffee": 24,
  14.         },
  15.         "cost": 2.5,
  16.     },
  17.     "cappuccino": {
  18.         "ingredients": {
  19.             "water": 250,
  20.             "milk": 100,
  21.             "coffee": 24,
  22.         },
  23.         "cost": 3.0,
  24.     }
  25. }
  26.  
  27. profit = 0
  28. resources = {
  29.     "water": 300,
  30.     "milk": 200,
  31.     "coffee": 100,
  32. }
  33.  
  34.  
  35. def is_resource_sufficient(order_ingredients):
  36.     """Returns True when order can be made, False if ingredients are insufficient."""
  37.     for item in order_ingredients:
  38.         if order_ingredients[item] > resources[item]:
  39.             print(f"​Sorry there is not enough {item}.")
  40.             return False
  41.     return True
  42.  
  43.  
  44. def process_coins():
  45.     """Returns the total calculated from coins inserted."""
  46.     print("Please insert coins.")
  47.     total = int(input("how many quarters?: ")) * 0.25
  48.     total += int(input("how many dimes?: ")) * 0.1
  49.     total += int(input("how many nickles?: ")) * 0.05
  50.     total += int(input("how many pennies?: ")) * 0.01
  51.     return total
  52.  
  53.  
  54. def is_transaction_successful(money_received, drink_cost):
  55.     """Return True when the payment is accepted, or False if money is insufficient."""
  56.     if money_received >= drink_cost:
  57.         change = round(money_received - drink_cost, 2)
  58.         print(f"Here is ${change} in change.")
  59.         global profit
  60.         profit += drink_cost
  61.         return True
  62.     else:
  63.         print("Sorry that's not enough money. Money refunded.")
  64.         return False
  65.  
  66.  
  67. def make_coffee(drink_name, order_ingredients):
  68.     """Deduct the required ingredients from the resources."""
  69.     for item in order_ingredients:
  70.         resources[item] -= order_ingredients[item]
  71.     print(f"Here is your {drink_name} ☕️. Enjoy!")
  72.  
  73.  
  74. is_on = True
  75.  
  76. while is_on:
  77.     choice = input("​What would you like? (espresso/latte/cappuccino): ")
  78.     if choice == "off":
  79.         is_on = False
  80.     elif choice == "report":
  81.         print(f"Water: {resources['water']}ml")
  82.         print(f"Milk: {resources['milk']}ml")
  83.         print(f"Coffee: {resources['coffee']}g")
  84.         print(f"Money: ${profit}")
  85.     else:
  86.         drink = MENU[choice]
  87.         if is_resource_sufficient(drink["ingredients"]):
  88.             payment = process_coins()
  89.             if is_transaction_successful(payment, drink["cost"]):
  90.                 make_coffee(choice, drink["ingredients"])
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement