from datetime import datetime expenses = [] def select_date(): date_input = input("請輸入日期 (YYYY-MM-DD): ") try: date = datetime.strptime(date_input, "%Y-%m-%d").date() return date except ValueError: print("日期格式錯誤。請使用 YYYY-MM-DD 格式。") return select_date() def input_amount(): amount_input = input("請輸入金額: ") try: amount = float(amount_input) return amount except ValueError: print("金額格式錯誤。請輸入數字。") return input_amount() def select_category(): categories = ['正餐', '零食', '玩樂', '應酬', '學習'] print("請選擇花費種類:") for i, category in enumerate(categories): print(f"{i+1}. {category}") category_input = input("請輸入選項編號: ") try: category_index = int(category_input) - 1 if category_index < 0 or category_index >= len(categories): raise ValueError return categories[category_index] except ValueError: print("選項編號錯誤。請重新輸入。") return select_category() def add_expense(): print("新增花費") date = select_date() amount = input_amount() category = select_category() expense = {"日期": date, "金額": amount, "種類": category} expenses.append(expense) print("花費已成功添加。") def list_expenses(): print("之前輸入的花費項目:") for i, expense in enumerate(expenses): print(f"{i+1}. 日期: {expense['日期']} 金額: {expense['金額']} 種類: {expense['種類']}") def delete_expense(): list_expenses() if len(expenses) == 0: return expense_index = input("請輸入要刪除的項目編號: ") try: index = int(expense_index) - 1 if index < 0 or index >= len(expenses): raise ValueError del expenses[index] print("項目已成功刪除。") except ValueError: print("項目編號錯誤。請重新輸入。") def main(): while True: print("\n選擇操作:") print("1. 新增花費") print("2. 列出花費項目") print("3. 刪除花費項目") print("4. 結束程式") choice = input("請輸入選項編號: ") if choice == "1": add_expense() elif choice == "2": list_expenses() elif choice == "3": delete_expense() elif choice == "