12345678910111213141516171819202122232425262728293031323334353637383940 |
- class MoneyMachine:
- CURRENCY = "$"
- COIN_VALUES = {
- "quarters": 0.25,
- "dimes": 0.10,
- "nickles": 0.05,
- "pennies": 0.01
- }
- def __init__(self):
- self.profit = 0
- self.money_received = 0
- def report(self):
- """Prints the current profit"""
- print(f"Money: {self.CURRENCY}{self.profit}")
- def process_coins(self):
- """Returns the total calculated from coins inserted."""
- print("Please insert coins.")
- for coin in self.COIN_VALUES:
- self.money_received += int(input(f"How many {coin}?: ")) * self.COIN_VALUES[coin]
- return self.money_received
- def make_payment(self, cost):
- """Returns True when payment is accepted, or False if insufficient."""
- self.process_coins()
- if self.money_received >= cost:
- change = round(self.money_received - cost, 2)
- print(f"Here is {self.CURRENCY}{change} in change.")
- self.profit += cost
- self.money_received = 0
- return True
- else:
- print("Sorry that's not enough money. Money refunded.")
- self.money_received = 0
- return False
|