為什麼做這個專案
記帳是很好的第一個專案:需求你自己最清楚,做出來每天都用得到,而且剛好會用到變數、條件、迴圈、函式、檔案這些基本功。
更重要的是,你會第一次體驗「和 AI 一起寫程式」的節奏:你決定要做什麼,AI 幫你寫和解釋,你負責測試和驗收。
整個程式只有三塊:選單、功能函式、資料檔。
開始前的準備
- 電腦已經安裝 Python 和 VS Code(「Python 第一步」第一堂)
- 會寫基本的函式和迴圈,看得懂串列與字典
- 準備一個 AI 助理,例如 Claude,用來問問題和除錯
- 建一個新資料夾,例如
expense-tracker
卡關是正常的。這個專案設計成每個里程碑都能單獨完成,做完一個就休息一下也沒關係。
實作指南
里程碑 1:規劃功能與資料格式
先別急著寫程式。在記事本裡寫下你要什麼:
功能:
1. 記一筆帳(日期、分類、金額、備註)
2. 看最近 10 筆
3. 本月統計:總額、各分類小計
資料檔:expenses.csv
欄位:date,category,amount,note
分類:餐飲、交通、日用品、娛樂、其他
把這份規格貼給 AI,請它挑毛病:
我是程式初學者,想用 Python 寫一個終端機記帳工具,規格如下。請告訴我有沒有漏掉什麼重要的情況,例如輸入錯誤怎麼辦。先不要寫程式。
里程碑 2:記下第一筆帳
Python 內建的 csv 模組就能處理。核心大概長這樣:
import csv
from datetime import date
def add_expense():
today = date.today().isoformat()
category = input("分類:")
amount = int(input("金額:"))
note = input("備註:")
with open("expenses.csv", "a", newline="", encoding="utf-8") as f:
csv.writer(f).writerow([today, category, amount, note])
print("已記錄!")
如果有哪一行看不懂,整段貼給 AI,請它「一行一行用白話解釋」。執行後打開 expenses.csv 看看,資料真的寫進去了,這個里程碑就完成了。
里程碑 3:查看最近紀錄與本月統計
這裡可以用「資料與自動化」學到的 pandas,幾行就能做分類加總:
import pandas as pd
df = pd.read_csv("expenses.csv", names=["date", "category", "amount", "note"])
this_month = df[df["date"].str.startswith("2026-11")]
print(this_month.groupby("category")["amount"].sum())
範例裡月份是寫死的。試著請 AI 幫你改成自動抓「這個月」,並問它為什麼這樣改。
里程碑 4:加上選單與防呆
用 while True 迴圈做選單,依照輸入呼叫不同函式。接著故意亂輸入:金額打「一百」、選單打 9,看看程式會不會當掉。
當使用者在金額輸入不是數字的內容時,我的程式會出現 ValueError 然後結束。請教我用 try 和 except 處理,讓它提示重新輸入。請解釋每一行在做什麼。
里程碑 5:請 AI 審查並整理程式
把完整程式貼給 AI,請它當程式審查者:
這是我寫的記帳程式。請用初學者聽得懂的方式,列出三個最值得改進的地方,並說明理由。先不要直接改寫整支程式。
一次只改一個地方,改完就執行一次,確認記帳功能還正常。
延伸挑戰
- 加一個「每月預算」,超過時顯示提醒
- 用 matplotlib 畫出各分類的圓餅圖
- 每月 1 號自動產生上個月的報表(「資料與自動化」的排程單元)
- 讓分類可以從檔案讀取,不用寫死在程式裡
- 能用選單記帳、看最近紀錄、看本月統計
- 資料存在
expenses.csv,關掉程式再打開,舊資料還在 - 輸入錯誤時不會當掉
- 本月統計和你手算的結果一致
- 你能向別人解釋每個函式在做什麼
做完了?分享你的作品!
到交流區貼上作品連結和心得,你的經驗會幫到下一個人。
專案討論
卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。