python assert 句語格式及用法很簡單。一般程序在運行完以後拋出異常,使用assert能夠在出現有異常的代碼處直接終止運行。 而不用等到程序執行完畢以後拋出異常。python
python assert的做用 express
python assert若是發生異常就說明表達示爲假。能夠理解表示式返回 值爲假 時就會觸發異常。ide
assert語句的語法格式 函數
assert expression [, arguments]
assert 表達式 [, 參數]
附加說明:assert也能夠用於多個表達式的: assert expression1, expression2。
注意:表達式=false 時,則執行其後面的異常。測試
咱們看幾個示例
1:單個表達式:spa
a = 1 assert a < 0, '出錯了,a大於0 啊' print('這裏不會輸出')
輸出:code
Traceback (most recent call last): File "main.py", line 3, in <module> assert a < 0, '出錯了,a大於0 啊' AssertionError: 出錯了,a大於0 啊
2:多個表達式:blog
a = 1 b = -1 assert a > 0, b < 0 print('正常輸出,表達式返回真了') # 輸出:正常輸出,表達式返回真了
3:嘗試捕獲 assert 異常:io
import traceback try: assert a < 0 except AssertionError as aeeor: # 明確拋出此異常 # 拋出 AssertionError 不含任何信息,因此沒法經過 aeeor.__str__()獲取異常描述 print('AssertionError', aeeor, aeeor.__str__()) # 經過 traceback 打印詳細異常信息 print('traceback 打印異常') traceback.print_exc() except: # 不會命中其餘異常 print('assert except') try: raise AssertionError('測試 raise AssertionError') except AssertionError as aeeor: print('raise AssertionError 異常', aeeor.__str__())
輸出:ast
1 AssertionError 2 traceback 打印異常 3 Traceback (most recent call last): 4 File "main.py", line 7, in <module> 5 assert a < 0 6 AssertionError 7 raise AssertionError 異常 測試 raise AssertionError
4:函數調用拋出異常:
# 除法運算 def foo(value, divide): assert divide != 0 return value / divide print('4除以2 =', foo(4, 2)) # 執行成功 print('4除以0 =', foo(4, 0)) # 拋出異常
輸出:
1 4除以2 = 2.0 2 Traceback (most recent call last): 3 File "main.py", line 8, in <module> 4 print('4除以0 =', foo(4, 0)) # 拋出異常 5 File "main.py", line 3, in foo 6 assert divide != 0 7 AssertionError
經過上面幾個示例,相信你們也深入理解aseert的用處了
總結: 表達式返回false 時。直接拋出異常終止繼續執行。