答案頁 · 12 道題

Python assert 測試練習答案

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

快速答案

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

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

01 · 選擇題

assert 條件為假時會發生什麼?

  1. 跳過這個條件
  2. Python 以狀態碼 0 退出
  3. 程式列印 False
  4. 拋出 AssertionError正確答案

答案: 拋出 AssertionError

為什麼: 斷言失敗會拋出 AssertionError。

02 · 選擇題

assert x == 3, 'x should be 3' 中逗號後面的部分是什麼?

  1. 第二個條件
  2. 僅作註解
  3. 預期型別
  4. 附加在失敗上的訊息正確答案

答案: 附加在失敗上的訊息

為什麼: 第二個表達式會成為 AssertionError 的訊息。

03 · 選擇題

用 -O 執行 Python 會對 assert 語句做什麼?

  1. 把它們變成 print 呼叫
  2. 移除它們正確答案
  3. 讓它們拋出 TypeError
  4. 執行兩次

答案: 移除它們

為什麼: -O 參數會移除 assert,所以不能用它做安全檢查。

04 · 選擇題

assert 適合用在哪裡?

  1. 處理網路錯誤
  2. 面向使用者的錯誤提示
  3. 測試和內部不變數正確答案
  4. 驗證密碼錶單

答案: 測試和內部不變數

為什麼: 斷言用於記錄假設,不是使用者輸入驗證機制。

05 · 填空題

補全檢查求和的語句。

total = 2 + 2
____ total == 4
print("ok")

答案: assert

為什麼: 關鍵字 assert 開始這個檢查。

06 · 填空題

補全訊息中的預期值。

total = 2 + 2
assert total == 4, "total should be ____"

答案: 6

為什麼: 訊息應說明預期的總和。

07 · 填空題

補全例外型別。

try:
    assert False
except ____ as error:
    print("caught")

答案: AssertionError

為什麼: 斷言失敗會拋出 AssertionError。

08 · 填空題

補全預期的平方值。

def square(n):
    return n * n
assert square(3) == ____
print("ok")

答案: 9

為什麼: 三的平方是九。

09 · 輸出預測

這段程式碼會輸出什麼?

assert 2 + 2 == 4
print("ok")

答案: ok

為什麼: 斷言通過,所以下一行會執行。

10 · 輸出預測

執行結果是什麼?

def f(n):
    return n * 2
assert f(3) == 6
print(f(3))

答案: 6

為什麼: 函式回傳六,斷言通過。

11 · 輸出預測

這段程式列印出什麼?

try:
    assert False, "bad"
except AssertionError as error:
    print(error)

答案: bad

為什麼: 逗號後的訊息會成為例外文字。

12 · 輸出預測

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

assert isinstance("x", str)
print("str")

答案: str

為什麼: 字串通過 isinstance 檢查,所以會列印 str。

先試一遍題目

打開 Python assert 測試 練習頁,用即時回饋回答同樣的 12 道題。

練習本課