Python3斷言


斷言是一種理智檢查,當程式的測試完成,你可以開啟或關閉。

斷言的最簡單的方法就是把它比作 raise-if 語句 (或者更準確,加 raise-if-not 宣告). 一個表示式進行測試,如果結果出現 false,將引發異常。

斷言是由 assert 語句,在Python中新的關鍵字,在Python1.5版本中引入使用的關鍵字。
程式員常常放置斷言來檢查輸入的有效,或在一個函式呼叫後檢查有效的輸出。

assert 語句

當它遇到一個斷言語句,Python評估計算之後的表示式,希望是 true 值。如果表示式為 false,Python 觸發 AssertionError 異常。

斷言的語法是 -
assert Expression[, Arguments] 

如果斷言失敗,Python使用 ArgumentExpression 作為AssertionError異常的引數。AssertionError異常可以被捕獲,並用 try-except語句處理類似其他異常,但是,如果沒有處理它們將終止該程式並產生一個回溯。

範例

這裡是一個把從開氏度到華氏度的溫度轉換函式。

#!/usr/bin/python3
def KelvinToFahrenheit(Temperature):
    assert (Temperature >= 0),"Colder than absolute zero!"
    return ((Temperature-273)*1.8)+32

print (KelvinToFahrenheit(273))
print (int(KelvinToFahrenheit(505.78)))
print (KelvinToFahrenheit(-5))
當執行上面的程式碼,它產生以下結果 -
32.0
451
Traceback (most recent call last):
File "test.py", line 9, in 
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!