cloning over all the old files
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
menu = {
|
||||
1: {"name": 'espresso', "price": 1.99},
|
||||
2: {"name": 'coffee', "price": 2.50},
|
||||
3: {"name": 'cake', "price": 2.79},
|
||||
4: {"name": 'soup', "price": 4.50},
|
||||
5: {"name": 'sandwich', "price": 4.99}
|
||||
}
|
||||
|
||||
def calculate_subtotal(order):
|
||||
"""Calculates the subtotal of an order.
|
||||
|
||||
[IMPLEMENT ME]
|
||||
1. Add up the prices of all items in the order.
|
||||
2. Round the result to 2 decimal places and return it.
|
||||
|
||||
Args:
|
||||
order (list): A list of dicts, where each dict represents an item with a name and price.
|
||||
|
||||
Returns:
|
||||
float: The subtotal of all item prices, rounded to 2 decimal places.
|
||||
"""
|
||||
print('Calculating bill subtotal...')
|
||||
|
||||
### WRITE SOLUTION HERE
|
||||
subtotal_calc = float(0.00)
|
||||
for item in order:
|
||||
subtotal_calc += item['price']
|
||||
return round(subtotal_calc, 2)
|
||||
|
||||
def calculate_tax(subtotal):
|
||||
"""Calculates the tax of an order.
|
||||
|
||||
[IMPLEMENT ME]
|
||||
1. Calculate 15% of the subtotal.
|
||||
2. Round the tax to 2 decimal places and return it.
|
||||
|
||||
Args:
|
||||
subtotal (float): The subtotal amount.
|
||||
|
||||
Returns:
|
||||
float: The calculated tax amount, rounded to 2 decimal places.
|
||||
"""
|
||||
print('Calculating tax from subtotal...')
|
||||
### WRITE SOLUTION HERE
|
||||
tax_rate = 0.15
|
||||
tax = subtotal * tax_rate
|
||||
return round(tax, 2)
|
||||
|
||||
|
||||
def summarize_order(order):
|
||||
"""Summarizes the order.
|
||||
|
||||
[IMPLEMENT ME]
|
||||
1. Calculate subtotal and tax.
|
||||
2. Compute the total (subtotal + tax) and round to 2 decimal places.
|
||||
3. Extract the item names and return them with the total.
|
||||
|
||||
Args:
|
||||
order (list): A list of dicts, where each dict represents an item with a name and price.
|
||||
|
||||
Returns:
|
||||
tuple: A list of item names and the total amount (rounded to 2 decimal places).
|
||||
"""
|
||||
|
||||
### WRITE SOLUTION HERE
|
||||
item_details = list()
|
||||
for item in order:
|
||||
item_details.append((item['name'], item['price']))
|
||||
subtotal = calculate_subtotal(order)
|
||||
subtotal = round(subtotal, 2)
|
||||
tax = calculate_tax(subtotal)
|
||||
total = round(subtotal + tax, 2)
|
||||
names = [item['name'] for item in order]
|
||||
return names, total
|
||||
|
||||
|
||||
# This function is provided for you and will print out the items in an order
|
||||
def print_order(order):
|
||||
print('You have ordered ' + str(len(order)) + ' items')
|
||||
items = [item["name"] for item in order]
|
||||
print(items)
|
||||
return order
|
||||
|
||||
# This function is provided for you and will display the menu
|
||||
def display_menu():
|
||||
print("------- Menu -------")
|
||||
for selection in menu:
|
||||
print(f"{selection}. {menu[selection]['name'] : <9} | {menu[selection]['price'] : >5}")
|
||||
print()
|
||||
|
||||
# This function is provided for you and will create an order by prompting the user to select menu items
|
||||
def take_order():
|
||||
display_menu()
|
||||
order = []
|
||||
count = 1
|
||||
for i in range(3):
|
||||
item = input('Select menu item number ' + str(count) + ' (from 1 to 5): ')
|
||||
count += 1
|
||||
order.append(menu[int(item)])
|
||||
return order
|
||||
|
||||
'''
|
||||
Here are some sample function calls to help you test your implementations.
|
||||
Feel free to change, uncomment, and add these as you wish.
|
||||
'''
|
||||
def main():
|
||||
order = take_order()
|
||||
print_order(order)
|
||||
names, total = summarize_order(order)
|
||||
|
||||
|
||||
print("Order summary:")
|
||||
for name, price in [(item['name'], item['price']) for item in order]:
|
||||
print(f" {name}: ${price:.2f}")
|
||||
|
||||
print(f"Total: ${total:.2f}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user