溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python assert的用處示例詳解

發(fā)布時間:2020-10-17 02:57:25 來源:腳本之家 閱讀:300 作者:周伯通的麥田 欄目:開發(fā)技術(shù)

使用assert斷言是學(xué)習(xí)python一個非常好的習(xí)慣,python assert 斷言句語格式及用法很簡單。在沒完善一個程序之前,我們不知道程序在哪里會出錯,與其讓它在運行最崩潰,不如在出現(xiàn)錯誤條件時就崩潰,這時候就需要assert斷言的幫助。本文主要是講assert斷言的基礎(chǔ)知識。

python assert斷言的作用

python assert斷言是聲明其布爾值必須為真的判定,如果發(fā)生異常就說明表達(dá)示為假??梢岳斫鈇ssert斷言語句為raise-if-not,用來測試表示式,其返回值為

下面通過實例代碼介紹下python assert 作用,具體內(nèi)容如下所示:

python assert 句語格式及用法很簡單。通常程序在運行完之后拋出異常,使用assert可以在出現(xiàn)有異常的代碼處直接終止運行。 而不用等到程序執(zhí)行完畢之后拋出異常。

python assert的作用

python assert如果發(fā)生異常就說明表達(dá)示為假。可以理解表示式返回 值為假 時就會觸發(fā)異常。

assert語句的語法格式

assert expression [, arguments]
assert 表達(dá)式 [, 參數(shù)]

附加說明:assert也可以用于多個表達(dá)式的: assert expression1, expression2。
注意:表達(dá)式=false 時,則執(zhí)行其后面的異常。

我們看幾個示例

1:單個表達(dá)式:

a = 1
assert a < 0, '出錯了,a大于0 啊'
print('這里不會輸出')

輸出:

Traceback (most recent call last):
 File "main.py", line 3, in <module>
 assert a < 0, '出錯了,a大于0 啊'
AssertionError: 出錯了,a大于0 啊

2:多個表達(dá)式:

a = 1
b = -1
assert a > 0, b < 0
print('正常輸出,表達(dá)式返回真了') # 輸出:正常輸出,表達(dá)式返回真了

3:嘗試捕獲 assert 異常:

import traceback

try:
 assert a < 0
except AssertionError as aeeor: # 明確拋出此異常
 # 拋出 AssertionError 不含任何信息,所以無法通過 aeeor.__str__()獲取異常描述
 print('AssertionError', aeeor, aeeor.__str__())

 # 通過 traceback 打印詳細(xì)異常信息
 print('traceback 打印異常')
 traceback.print_exc()
except: # 不會命中其他異常
 print('assert except')

try:
 raise AssertionError('測試 raise AssertionError')
except AssertionError as aeeor:
 print('raise AssertionError 異常', aeeor.__str__())

輸出:

AssertionError
 traceback 打印異常
 Traceback (most recent call last):
 File "main.py", line 7, in <module>
 aAssertionError
 raise AssertionError 異常 測試 raise AssertionErrorssert a < 0

 4:函數(shù)調(diào)用拋出異常:

# 除法運算
def foo(value, divide):
 assert divide != 0
 return value / divide
print('4除以2 =', foo(4, 2)) # 執(zhí)行成功
print('4除以0 =', foo(4, 0)) # 拋出異常

輸出:

 4除以2 = 2.0
 Traceback (most recent call last):
 File "main.py", line 8, in <module>
 print('4除以0 =', foo(4, 0)) # 拋出異常
 File "main.py", line 3, in foo
 assert divide != 0
 AssertionError

通過上面幾個示例,相信大家也深刻理解aseert的用處了

總結(jié): 表達(dá)式返回false 時。直接拋出異常終止繼續(xù)執(zhí)行。

以上所述是小編給大家介紹的python assert的用處示例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI