code:本書的程式碼#
每一個小節的 Python 程式都在這裡,全部都實際執行過。
目錄結構#
code/
01.1/01.1.py 第 1.1 節「從母體到樣本」的全部程式
01.2/01.2.py 第 1.2 節「集中趨勢」的全部程式
...
一個小節一個資料夾,資料夾裡的 NN.M.py 是該節書中出現的程式碼塊 照順序串接 成的可執行腳本;每個區塊之間用 # --- 區塊 k --- 標出,方便對回書中的位置。
怎麼跑#
程式需要 rstatistics:
cd 用Python學機率統計
PYTHONPATH=/path/to/rupy/rstatistics python3.14 code/01.1/01.1.py
安裝套件後也可以直接跑:
pip install rstatistics
python3 code/01.1/01.1.py
驗收方式#
這些腳本是用下面的方式逐一執行、逐一比對輸出的;書裡貼的每一段輸出都是這些腳本的真實 stdout(不是示意圖)。
# 抽出所有小節的程式並全部執行
python3 extract.py # 抽出 + 執行 + 報告
python3 extract.py 03.4 05.1 # 只重跑某幾節
腳本本身在 code/ 之外(本書的建置工具),抽出規則是:把每個 NN.M-*.md 裡的 ``python 區塊依序串接,寫成code/NN.M/NN.M.py,然後以PYTHONPATH指向rstatistics` 執行;任何一節失敗時會再把區塊拆開個別執行,以找出真正壞掉的那一段。
圖檔#
各節產生的 SVG 圖集中在書目錄的 img/ 資料夾(例如 img/04.1-dunif-punif.svg),書中的文字以  的相對路徑引用它們;重跑對應的 code/NN.M/NN.M.py 就會在 img/ 裡重新產生。
提醒#
- 亂數都用
r.set_seed(...)固定種子,所以重跑會得到一模一樣的數字;這正是第 5.5 節要說明的事。 - 部分章節的模擬次數較多(,蒙地卡羅 10^5~10^6 次),執行時間會比一般腳本長一點。