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 == "