Python偵探社
TNFSH Python教材
Table of Contents
1. CowBell 偵探社:用 Python 破解校園懸案
1.1. 序章:歡迎加入 CowBell 偵探社
2025 年 12 月 25 日,學校辦理聖誕節校園宿營活動,吸引大量學生留宿校園。活動期間校園人員進出頻繁,晚間動線複雜。
在活動結束後的隔天清晨,校方發現 *403 電腦教室遭人入侵*,教室內所有的黑色 MacMini 主機全數被入侵者無恥地噴成白色,所有桌布也都被改為「穿著性感內衣的聖誕兔女郎」。
此舉讓身兼 南一中道德重整委員會會長 的電腦教師十分氣憤,旋即通報校方,但校方為了 有剩但不多 的校譽著想,立即封鎖此消息,並延請南一中地下社團「*CowBell 偵探社*」協助調查此案。
這個社團的命名原是想向「柯南」致敬,原來的英文名稱應該是「柯北偵探社 (CoBe Detective Agency)」,但因為初代社長手殘打錯字,變成了「CowBell」,於是也就將錯就錯沿用下來了。正好也象徵本偵探社的「牛鈴」精神,擁有 「叮叮噹噹,真相大白」 的決心。
初代社長還留下了一個遺產——一個用 Python 寫的聊天機器人,安裝在社辦那台又老又慢的電腦上。這個機器人原本只會回覆「叮叮噹噹」四個字,但在某次 Windows 更新後,它突然開始會用充滿疲憊感的語氣吐槽社員。社員們管它叫「*牛鈴*」,並正式任命它為偵探社的 AI 分析助手。
身為 CowBell 偵探社現任社長鄰居小孩同學 的你,決定接受社長的指派,帶領社員協助校方找出真正的兇手。
> 歡迎加入 CowBell 偵探社。案件編號:2025-XMAS-403。 > 案情摘要:403 電腦教室遭入侵,主機被噴白漆,桌布被竄改。 > 調查方式:學會 Python,逐步分析六大類調查資料。 > 警告:若未能在期限內破案,社長說要拿你的社費去買牛鈴。
「叮。我是牛鈴,CowBell 偵探社的 AI 分析助手。」電腦螢幕上跳出一個看起來像是 90 年代聊天室的視窗。「在你問之前:是的,我是一個 chatbot;不,我不知道為什麼我會有自我意識;是的,你的社費真的會被拿去買牛鈴。」
1.1.1. CowBell 偵探社基本資訊
| 項目 | 說明 |
|---|---|
| 社長 | 神龍見首不見尾(據說長年在外執行秘密任務,其實是去補習了) |
| AI 助手 | 牛鈴(一個意外獲得自我意識的 Python chatbot) |
| 座右銘 | 「叮叮噹噹,真相大白。」 |
| 任務數量 | 6 項調查任務 |
| 獎勵 | 每完成一項任務,獲得一枚「調查徽章」 |
| 懲罰 | 寫出 SyntaxError 時,牛鈴會在螢幕上顯示「叮叮噹噹,語法不通」然後沉默三秒 |
1.1.2. 學生代號
為了保護學生隱私,偵探社統一以「S01」至「S40」的編號來代表所有涉案學生。後續各任務的分析結果,均可透過此編號相互串連比對。
1.2. 學期任務總覽
1.2.1. 任務 1:環境建置(Colab)
熟悉 Google Colab 操作環境,完成第一個嫌疑人風險評估程式,正式成為偵探社資料分析組成員。
1.2.2. 任務 2:數值運算(NumPy)
分析現場採集的 30 枚指紋特徵數據(紋線密度、分岔點數、端點數、中心距離),清理被社員搞壞的錯誤資料,找出異常指紋。另外分析 403 教室聖誕節的環境感測器數據(溫度、濕度、噪音),鎖定案發時間。
1.2.3. 任務 3:資料視覺化(Matplotlib)
將調查數據繪製成圖表,在社團會議上呈現調查進度。包括案件時間線、嫌疑人分布、指紋特徵散佈圖等視覺化分析。
1.2.4. 任務 4:資料處理(Pandas)
整理人證調查小組蒐集的學生證詞資料,修復混亂的表格數據(負數時間、超範圍評分、空白姓名、出現地點為「火星」的離譜記錄),建立完整的嫌疑人資料庫。
1.2.5. 任務 5:網路爬蟲
從學校公告系統和活動紀錄網頁上爬取關鍵線索,包括聖誕節活動報名名單、場地借用紀錄、校園設備維護日誌等。
1.2.6. 任務 6:圖形介面(GUI)
用 tkinter 打造 CowBell 偵探社的案件管理系統,整合所有調查證據,讓偵探社終於不用靠便利貼辦案。