真實輸入的真值表
獨立掌握檢查(不使用 AI 輔助)。
前置要求
已完成 Day 05 的比較檢查;能用 python3 執行 Python 檔案並讀懂其輸出。
學習目標
預測並驗證空值、零與空白輸入的 bool() 結果,並解釋為什麼 `if value:` 分支可能把真實資料判斷錯誤。
操作指引
必做:在執行任何程式之前,針對 []、[0]、""、" "、0、"0" 逐一寫下你對 bool(value) 以及分支 presence(value)(值為真時回傳 "present",否則回傳 "missing")結果的預測。接著執行程式,原樣複製輸出,並標出所有與預測不符的列。
複盤:每處不符都用一句話寫出規則:空容器與數值零為假;任何非空字串(包括 " " 和 "0")都為真。
選做:只有在必做證據完整之後,才把 None 和 [[]] 加入串列,先預測再執行。
自主實作與記錄
建立 truthiness.py,定義 presence(value)(value 為真時回傳 "present",否則回傳 "missing"),並依 []、[0]、""、" "、0、"0" 的順序,把每個值的 repr(value)、bool(value) 與 presence(value) 印在同一行。
字串只有在長度為 0 時才為假,所以 " "(一個空格)和 "0" 都為真。串列只有為空時才為假,所以即使 [0] 唯一的元素為假,它本身仍為真。
參考解答(truthiness.py):
def presence(value):
if value:
return "present"
return "missing"
for value in [[], [0], "", " ", 0, "0"]:
print(repr(value), bool(value), presence(value))
精確輸出(Python 3.13 與 3.14):
[] False missing
[0] True present
'' False missing
' ' True present
0 False missing
'0' True present
解析:[]、"" 和 0 為假,因此分支回報為 "missing"。[0]、" " 和 "0" 為真,因此回報為 "present"。有兩列容易誤導:只含空白的文字沒有任何資料,卻被回報為 present;數字 0 是真實存在的值,卻被回報為 missing。當含義很重要時,請明確判斷(例如 text.strip() == "" 或 value is None),不要依賴真值。
客觀知識測驗與診斷追蹤
請回答以下題目檢驗掌握情況。提交前請誠實聲明你的輔助條件。
在真值表中,哪個輸入雖然不含任何可見資料,卻為真,因而被 presence(value) 回報為 "present"?
該字串長度為 1,所以 bool(" ") 為 True。"" 和 [] 為空,因此為假,被回報為 "missing"。
字串的真值只取決於長度,與字元看起來是什麼無關。
作答應證與歷史記錄
在不使用 AI 輔助的情況下,於執行前寫下全部 6 個輸入的預測,實際輸出與參考解答完全一致,並能正確解釋兩列誤導性結果(`" "` 被判為 present,`0` 被判為 missing)。必做與選做內容分開,證據中註明為獨立完成。
權威來源資源與權利證明
Python Standard Library: Built-in Types
對應章節 / 時間戳: 「真值測試」、「比較」和「可變序列型別」各節
驗證版本與日期: Python 3.12 文件(核驗日期:2026-10-30)
用於查閱真值、比較、繫結和物件修改行為的規範性參考資料。
Day 03 復原演練
執行教材中提供的 Python 範例,並查閱已安裝直譯器的說明。
對比候選資源與選型分析 (2)
這份參考資料更深入地說明物件語義,超出了運算式層面練習所需的範圍;stdtypes 能將內容限定在運算子層面。
以敘述方式介紹相同的運算子;函式庫參考文件則被選為查閱規範簽章的資料。
Git User Manual: Recording Changes
對應章節 / 時間戳: 將變更記錄到儲存庫
驗證版本與日期: 核驗日期:2026-10-30
用於在安全提交前檢查小範圍差異的第一手參考資料。
Git 基礎知識
在本機使用 git diff 和 git status;理解差異之後再提交。
對比候選資源與選型分析 (2)
提供命令層級的選項參考;選擇 Pro Git 章節,是因為它逐步說明了如何在提交前檢查變更。
容易理解的商業教學;對於同樣的檢查習慣,書籍章節更深入地解釋了暫存與索引的語義。