值普查與型別標籤
獨立掌握檢查(不使用 AI 輔助)。
前置要求
已完成 Day 03 的補救練習;能夠從終端機啟動 Python;複習「先預測、再觀察」的方法。
學習目標
使用 repr()、type() 和 bool() 區分在螢幕上看起來相似的值(0、"0"、""、None),並解釋為什麼文字 "0" 不是數字 0。
操作指引
學習來源:在本活動現有的閱讀與練習時段內,參考 Automate the Boring Stuff with Python, 3rd edition 的 Chapter 1; Practice Questions; Appendix B answers,用自己的話解釋一處與本地任務的聯繫。保留現有練習與驗收檢查;若外部資料無法存取,使用課程自寫的解釋。必做任務:把下面的程式碼儲存為 census.py。執行之前,先寫下每一行輸出的預測。然後執行 python3 census.py,記錄確切的輸出,並與預測進行比較。
for value in [0, "0", "", None]:
print(repr(value), type(value).__name__, bool(value))
print("0" == 0, int("0") == 0)
用一兩句話解釋:為什麼 "0"(文字)和 0(整數)在 repr() 顯示、型別和真值上都不同。
選做任務:只有在必做證據完成之後,才在串列中再加入一個你自選的值(例如 0.0 或 "False"),先預測它的那一行,再重新執行。
自主實作與記錄
在執行下面的程式之前,預測全部 5 行輸出,然後記錄確切的輸出:
for value in [0, "0", "", None]:
print(repr(value), type(value).__name__, bool(value))
print("0" == 0, int("0") == 0)
最後,解釋為什麼文字 "0" 不是數字零。
print() 不顯示引號,repr() 會顯示。非空字串即使只包含字元 0 也為真;字串永遠不會等於整數。
確切輸出:
0 int False
'0' str True
'' str False
None NoneType False
False True
解析:repr() 會替字串加上引號,所以 "0" 顯示為 '0',而整數顯示為 0。type(...).__name__ 對 0 是 int,對 "0" 和 "" 是 str,對 None 是 NoneType。bool() 對數字零、空字串和 None 回傳 False,但 "0" 是非空字串,所以回傳 True。最後一行說明 "0" == 0 為 False(str 永遠不等於 int);int("0") 把文字轉換為數字 0,因此那個比較為 True。
客觀知識測驗與診斷追蹤
請回答以下題目檢驗掌握情況。提交前請誠實聲明你的輔助條件。
print(repr("0"), type("0").__name__, bool("0")) 會輸出什麼?
"0" 是只有一個字元的字串:repr() 顯示為 '0',型別是 str,任何非空字串都為真,所以輸出是 '0' str True。
repr() 會保留字串的引號;字串中只有空字串為假。
作答應證與歷史記錄
你的預測紀錄和觀察到的輸出包含上面全部 5 行確切內容,並且解釋中指出了型別差異(str 與 int)、真值規則(非空字串為 True),以及需要用 int() 明確轉換。紀錄中需寫明必做/選做的邊界,並聲明未使用 AI 輔助。
權威來源資源與權利證明
Automate the Boring Stuff with Python, 3rd edition
對應章節 / 時間戳: Chapter 1; Practice Questions; Appendix B answers
驗證版本與日期: Public edition checked 2026-11-01; moving pages may change
Beginner teaching and answer-keyed practice before checking exact semantics in the Python reference; selected chapters only, not the book's entire automation stack.
No prior programming required for Chapter 1; later chapters assume its basic Python concepts.
Use the original localized explanations, exercises and checks already present in this activity; no external account or purchase is required for that fallback.
對比候選資源與選型分析 (2)
Guided Python syntax but assumes programming familiarity; paired with the beginner text rather than used as its replacement.
Lectures and problem sets teach a broader CS1 course; the book offers shorter text-first entry and an answer appendix.
Python Standard Library: Built-in Types
對應章節 / 時間戳: 「真值測試」、「比較」和「可變序列型別」各節
驗證版本與日期: Python 3.12 documentation (verified 2026-10-30)
用於查閱真值、比較、繫結和物件修改行為的規範性參考資料。
Day 03 復原演練
執行教材中提供的 Python 範例,並查閱已安裝直譯器的說明。
對比候選資源與選型分析 (2)
這份參考資料更深入地說明物件語義,超出了運算式層面練習所需的範圍;stdtypes 能將內容限定在運算子層面。
以敘述方式介紹相同的運算子;函式庫參考文件則被選為查閱規範簽章的資料。
Git User Manual: Recording Changes
對應章節 / 時間戳: 將變更記錄到儲存庫
驗證版本與日期: Verified 2026-10-30
用於在安全提交前檢查小範圍差異的第一手參考資料。
Git 基礎知識
在本機使用 git diff 和 git status;理解差異之後再提交。
對比候選資源與選型分析 (2)
提供命令層級的選項參考;選擇 Pro Git 章節,是因為它逐步說明了如何在提交前檢查變更。
容易理解的商業教學;對於同樣的檢查習慣,書籍章節更深入地解釋了暫存與索引的語義。