# Lesson 21|比較與圖表 執行 `main.py` 就能看到人數排名、文字長條圖,以及兩個學年度的原始人數。CSV 和工具函式都已備好,只使用 Python 內建模組,不需要另外安裝套件或下載資料。 ## 怎麼使用 1. 先執行一次,確認讀入 242 列資料,並看到 114 學年度的國小人數排名。 2. 在 CSV 裡找到其中一筆數字,核對學年度、縣市與欄位。 3. 到 `main()` 下半部,找到 `change = None`,改成「後來的人數減去原來的人數」的算式,再執行。 4. 修改檔案上方的 `COUNTY`、`BEFORE_YEAR`、`AFTER_YEAR`、`FIELD` 或 `TOP_N`,回答自己的問題。 5. 把一張文字圖或一組比較結果記在 `REPORT.md`,先暫存進度;要交作品時再正式提交。 可以先完成排名圖或跨年比較其中一種,再由老師依程度安排延伸。 ## 可以查詢的工具 ```python rows = load_rows() before = get_count(rows, "104", "新北市", "國小[人]") after = get_count(rows, "114", "新北市", "國小[人]") results = count_by_county(rows, "114", "國中[人]") print_text_chart(results, 5) ``` - `load_rows()`:讀取專案裡的 CSV。 - `get_count()`:取得一個學年度、一個縣市、一個欄位的人數。 - `count_by_county()`:取得同一學年度的縣市人數排名。 - `print_text_chart()`:印出同尺度的文字長條圖。 - `parse_count()`:把 `"1,234"` 轉成 `1234`;空白、破折號和無效值會得到 `None`,不會誤當成 0。 欄位名稱要與 CSV 完全一致,例如 `國小[人]`、`國中[人]`。縣市使用原表寫法,例如 `臺中市`。 ## 核對用例子 - 新北市國小:104 學年度 201,970 人;114 學年度 194,670 人。 - 臺中市國小:104 學年度 157,272 人;114 學年度 161,332 人。 - 114 學年度國小前 3 名:新北市、臺中市、桃園市。 圖表要標明學年度、教育階段、單位與來源。只比較兩個學年度,不能直接寫成「每年都增加/減少」,也不能單靠人數判斷原因。 選做:計算百分比時,以原來的人數作分母;原來的人數是 0 時不能直接相除。 ## 已經有自己的進度 Lesson 19–22 沿用同一個專案。切換 Lesson 不會自動匯入套版;已有程式與報告時,請先暫存或下載備份,再決定是否匯入起始套版。沿用原專案的同學,也可以只參考上述查詢函式與相減寫法。