答案頁 · 12 道題

Python 錯誤處理練習答案

本頁彙整 Python 錯誤處理 的 12 道練習。先做練習頁,再回到這裡核對準確答案和原因。

快速答案

本答案頁包含 Python 錯誤處理 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。

答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。

01 · 選擇題

int("abc") 會拋出哪個例外?

  1. KeyError
  2. TypeError
  3. IndexError
  4. ValueError正確答案

答案: ValueError

為什麼: 文字型別正確,但值無法轉換成 int。

02 · 選擇題

存取字典中不存在的鍵會拋出哪個例外?

  1. KeyError正確答案
  2. ValueError
  3. SyntaxError
  4. NameError

答案: KeyError

為什麼: 用方括號存取缺失鍵會觸發 KeyError。

03 · 選擇題

try/except 的主要用途是什麼?

  1. 把文字轉換成數字
  2. 處理預期內的失敗並恢復正確答案
  3. 隱藏所有 bug
  4. 讓程式碼執行得更快

答案: 處理預期內的失敗並恢復

為什麼: 例外處理應該捕獲具體、可預期的失敗,並選擇兜底方案。

04 · 選擇題

finally 程式碼區塊什麼時候執行?

  1. 只在發生例外後
  2. 總是執行,在 try 和 except/else 之後正確答案
  3. 只在 try 成功時
  4. 只在程式退出時

答案: 總是執行,在 try 和 except/else 之後

為什麼: finally 用於無論成功失敗都必須執行的清理。

05 · 填空題

補全例外型別,處理非法的整數轉換。

try:
    value = int(text)
except ____:
    value = 0

答案: ValueError

為什麼: 文字無法轉換成整數時,int() 會拋出 ValueError。

06 · 填空題

補全關鍵字,開始例外處理程式碼區塊。

try:
    value = int(text)
____ ValueError:
    value = 0

答案: except

為什麼: except 引入處理比對例外的程式碼區塊。

07 · 填空題

補全例外型別,處理字典缺失鍵。

try:
    price = order["price"]
except ____:
    price = 0

答案: KeyError

為什麼: 用方括號讀取缺失鍵會觸發 KeyError。

08 · 填空題

補全程式碼區塊,它用於總是執行的清理。

try:
    print("work")
____:
    print("cleanup")

答案: finally

為什麼: 無論 try 成功還是失敗,finally 都會執行。

09 · 輸出預測

這段程式碼會輸出什麼?

try:
    print(int("5"))
except ValueError:
    print("bad")

答案: 5

為什麼: 轉換成功,所以跳過 except 分支。

10 · 輸出預測

執行結果是什麼?

try:
    print(int("x"))
except ValueError:
    print("invalid")

答案: invalid

為什麼: 轉換失敗,所以處理程式碼列印 invalid。

11 · 輸出預測

這段程式列印出什麼?

order = {}
try:
    print(order["price"])
except KeyError:
    print("missing")

答案: missing

為什麼: 鍵不存在,所以執行 KeyError 處理程式碼。

12 · 輸出預測

程式碼的輸出結果是什麼?

try:
    print("try", end=" ")
finally:
    print("finally")

答案: try finally

為什麼: finally 總會執行,第一個 print 沒有換行。

先試一遍題目

打開 Python 錯誤處理 練習頁,用即時回饋回答同樣的 12 道題。

練習本課