python assert的用處示例詳解
使用assert斷言是學(xué)習(xí)python一個(gè)非常好的習(xí)慣,python assert 斷言句語(yǔ)格式及用法很簡(jiǎn)單。在沒完善一個(gè)程序之前,我們不知道程序在哪里會(huì)出錯(cuò),與其讓它在運(yùn)行最崩潰,不如在出現(xiàn)錯(cuò)誤條件時(shí)就崩潰,這時(shí)候就需要assert斷言的幫助。本文主要是講assert斷言的基礎(chǔ)知識(shí)。
python assert斷言的作用
python assert斷言是聲明其布爾值必須為真的判定,如果發(fā)生異常就說(shuō)明表達(dá)示為假??梢岳斫鈇ssert斷言語(yǔ)句為raise-if-not,用來(lái)測(cè)試表示式,其返回值為
下面通過(guò)實(shí)例代碼介紹下python assert 作用,具體內(nèi)容如下所示:
python assert 句語(yǔ)格式及用法很簡(jiǎn)單。通常程序在運(yùn)行完之后拋出異常,使用assert可以在出現(xiàn)有異常的代碼處直接終止運(yùn)行。 而不用等到程序執(zhí)行完畢之后拋出異常。
python assert的作用
python assert如果發(fā)生異常就說(shuō)明表達(dá)示為假??梢岳斫獗硎臼椒祷?值為假 時(shí)就會(huì)觸發(fā)異常。
assert語(yǔ)句的語(yǔ)法格式
assert expression [, arguments] assert 表達(dá)式 [, 參數(shù)]
附加說(shuō)明:assert也可以用于多個(gè)表達(dá)式的: assert expression1, expression2。
注意:表達(dá)式=false 時(shí),則執(zhí)行其后面的異常。
我們看幾個(gè)示例
1:?jiǎn)蝹€(gè)表達(dá)式:
a = 1
assert a < 0, '出錯(cuò)了,a大于0 啊'
print('這里不會(huì)輸出')
輸出:
Traceback (most recent call last): File "main.py", line 3, in <module> assert a < 0, '出錯(cuò)了,a大于0 啊' AssertionError: 出錯(cuò)了,a大于0 啊
2:多個(gè)表達(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 不含任何信息,所以無(wú)法通過(guò) aeeor.__str__()獲取異常描述
print('AssertionError', aeeor, aeeor.__str__())
# 通過(guò) traceback 打印詳細(xì)異常信息
print('traceback 打印異常')
traceback.print_exc()
except: # 不會(huì)命中其他異常
print('assert except')
try:
raise AssertionError('測(cè)試 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 異常 測(cè)試 raise AssertionErrorssert a < 0
4:函數(shù)調(diào)用拋出異常:
# 除法運(yùn)算
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
通過(guò)上面幾個(gè)示例,相信大家也深刻理解aseert的用處了
總結(jié): 表達(dá)式返回false 時(shí)。直接拋出異常終止繼續(xù)執(zhí)行。
以上所述是小編給大家介紹的python assert的用處示例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python中數(shù)組,列表:冒號(hào)的靈活用法介紹(np數(shù)組,列表倒序)
下面小編就為大家分享一篇Python中數(shù)組,列表:冒號(hào)的靈活用法介紹(np數(shù)組,列表倒序),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python進(jìn)行圖像邊緣檢測(cè)的詳細(xì)教程
相信大家對(duì)于邊緣檢測(cè)這幾個(gè)詞并不陌生,但是相對(duì)于如何處理,如何進(jìn)行圖像的邊緣檢測(cè)卻無(wú)能為力、束手無(wú)策了,下面這篇文章主要給大家介紹了關(guān)于python進(jìn)行圖像邊緣檢測(cè)的詳細(xì)教程,需要的朋友可以參考下2023-04-04
Python中re正則匹配數(shù)據(jù)的實(shí)現(xiàn)
在Python中,可以使用re模塊來(lái)使用正則表達(dá)式,本文主要介紹了Python中re正則匹配數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04
Pytorch中torchtext終極安裝方法以及常見問(wèn)題
torchtext是pytorch框架中用于文本處理的,下面這篇文章主要給大家介紹了關(guān)于Pytorch中torchtext終極安裝方法以及常見問(wèn)題的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
在VSCode中配置Python開發(fā)環(huán)境的詳細(xì)教程
Visual Studio Code(簡(jiǎn)稱VSCode)以其強(qiáng)大的功能和靈活的擴(kuò)展性,成為了許多開發(fā)者的首選,本文將詳細(xì)介紹如何在VSCode中配置Python開發(fā)環(huán)境,需要的朋友可以參考下2025-04-04
python環(huán)境配置方式(服務(wù)器+本地)
這篇文章詳細(xì)介紹了在服務(wù)器上安裝和配置Anaconda3、TensorFlow、PyTorch等深度學(xué)習(xí)環(huán)境的步驟,包括下載、初始化、創(chuàng)建環(huán)境、驗(yàn)證安裝以及解決一些常見問(wèn)題2025-01-01
利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法
這篇文章主要給大家介紹了關(guān)于利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法,以及python 批量將圖片轉(zhuǎn)為灰度圖的方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12
提高python代碼可讀性利器pycodestyle使用詳解
鑒于 Python 在數(shù)據(jù)科學(xué)中的流行,我將深入研究 pycodestyle 的使用方法,以提高 Python 代碼的質(zhì)量和可讀性。如果你想提升代碼質(zhì)量,歡迎收藏學(xué)習(xí),有所收獲,點(diǎn)贊支持2021-11-11

