前面章節介紹了如何使用 IDLE 自身的調試工具調試程式,除此之外,Python 還提供了 assert 語句,也可以用來調試程式。
《Python assert斷言)》一節中,已經對 assert 的基本用法做了簡單介紹,assert 語句的完整文法格式為:
assert 條件表達式 [,描述資訊]
assert 語句的作用是:當條件表達式的值為真時,該語句什麼也不做,程式正常運作;反之,若條件表達式的值為假,則 assert 會抛出 AssertionError 異常。其中,[,描述資訊] 作為可選參數,用于對條件表達式可能産生的異常進行描述。
例如:
s_age = input("請輸入您的年齡:")
age = int(s_age)
assert 20 < age < 80 , "年齡不在 20-80 之間"print("您輸入的年齡在20和80之間")
程式運作結果為:
請輸入您的年齡:10
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 3, in <module>
assert 20 < age < 80 , "年齡不在 20-80 之間"
AssertionError: 年齡不在 20-80 之間
通過運作結果可以看出,當 assert 中條件表達式的值為假時,程式将抛出異常,并附帶異常的描述性資訊,與此同時,程式立即停止執行。
通常情況下,assert 可以和 try except 異常處理語句配合使用,以前面代碼為例:
try:
s_age = input("請輸入您的年齡:")
age = int(s_age)
assert 20 < age < 80 , "年齡不在 20-80 之間" print("您輸入的年齡在20和80之間")
except AssertionError as e:
print("輸入年齡不正确",e)
程式運作結果為:
請輸入您的年齡:10
輸入年齡不正确 年齡不在 20-80 之間
通過在程式的适當位置,使用 assert 語句判斷變量或表達式的值,可以起到調試代碼的作用。
當在指令行模式運作 Python 程式時,傳入 -O(注意是大寫)參數,可以禁用程式中包含的 assert 語句。