from datetime import datetime # For print_receipt # Display all items in cart with prices and total def display_cart(cart): i = 1 for item in cart: print(f"{i}. {item} - ${cart[item]:.2f}") i += 1 # Add item to cart or update if exists def add_to_cart(cart, item, price): cart[item] = price return cart # Remove item by position number def remove_from_cart(cart, item_number): i = 1 for item in cart: if i == item_number: cart.pop(item) return cart print("WARNING: No item with number {i} found!") return cart # Calculate total price of all items def calculate_total(cart): total = 0 for item in cart: total += cart[item] return total # Helper function for nicely printing lines in receipt def print_fill(left_side, right_side, filler, line_len): middle = "" while len(f"{left_side}{middle}{right_side}") < line_len: middle += filler print(f"{left_side}{middle}{right_side}") def print_receipt(cart): print("========== RECEIPT =======") print(f"Date: {datetime.now().date().isoformat()}") print("") for item in cart: print_fill(item, f" ${cart[item]:.2f}", ".", 26) print("") subtotal = calculate_total(cart) tax = 0.08 * subtotal print_fill("Subtotal:", f" ${subtotal}", " ", 26) print_fill("Tax (8%):", f" ${tax:.2f}", " ", 26) print("--------------------------") total = subtotal + tax print_fill("Total:", f" ${total:.2f}", " ", 26) print("==========================") # # Main program cart = {} # Empty dictionary to store items and prices while True: print("Menu:") print("1. Display Cart") print("2. Add to Cart") print("3. Remove from Cart") print("4. Get Total") print("5. Checkout") choice = input("Enter choice: ") if choice == "1": display_cart(cart) elif choice == "2": item = input("Item: ") price = float(input("Price: ")) cart = add_to_cart(cart, item, price) elif choice == "3": item_number = int(input("Item Number: ")) cart = remove_from_cart(cart, item_number) elif choice == "4": total = calculate_total(cart) print(f"Total: {total:.2f}") elif choice == "5": print_receipt(cart) break else: print(f"Invalid option: {choice}")