1.使用時(shí)機(jī)及目的
時(shí)機(jī)
防御性的編程
運(yùn)行時(shí)對(duì)程序邏輯的檢測(cè)
合約性檢查(比如前置條件,后置條件)
程序中的常量
檢查文檔
目的
與其讓程序在晚些時(shí)候崩潰,不如在錯(cuò)誤條件出現(xiàn)時(shí),就直接讓程序崩潰,這有利于我們對(duì)程序排錯(cuò),提高程序的健壯性。assert 語(yǔ)句通常用于檢查用戶的輸入是否符合規(guī)定,還經(jīng)常用作程序初期測(cè)試和調(diào)試過(guò)程中的輔助工具。
2.assert的用法
Python?assert 語(yǔ)句,又稱斷言語(yǔ)句,可以看做是功能縮小版的 if 語(yǔ)句,它用于判斷某個(gè)表達(dá)式的值,如果值為真,則程序可以繼續(xù)往下執(zhí)行;反之,Python 解釋器會(huì)報(bào) AssertionError 錯(cuò)誤。
assert 語(yǔ)句的語(yǔ)法結(jié)構(gòu)為:
assert 表達(dá)式
assert 語(yǔ)句的執(zhí)行流程可以用 if 判斷語(yǔ)句表示(等效),如下所示:
if 表達(dá)式==True:
程序繼續(xù)執(zhí)行
else:
程序報(bào) AssertionError 錯(cuò)誤
示例:
mathmark = int(input())
#斷言數(shù)學(xué)考試分?jǐn)?shù)是否位于正常范圍內(nèi)
assert 0 <= mathmark <= 100
#只有當(dāng) mathmark 位于 [0,100]范圍內(nèi),程序才會(huì)繼續(xù)執(zhí)行
print("數(shù)學(xué)考試分?jǐn)?shù)為:",mathmark)
運(yùn)行該程序,測(cè)試數(shù)據(jù)如下:
90
數(shù)學(xué)考試分?jǐn)?shù)為: 90
再次執(zhí)行該程序,測(cè)試數(shù)據(jù)為:
159
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\file.py", line 3, in <module>
assert 0 <= mathmark <= 100
AssertionError
可以看到,當(dāng) assert 語(yǔ)句后的表達(dá)式值為真時(shí),程序繼續(xù)執(zhí)行;反之,程序停止執(zhí)行,并報(bào) AssertionError 錯(cuò)誤。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-842268.html
內(nèi)容參考自:https://www.cnblogs.com/hzzhbest/p/15153232.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-842268.html
到了這里,關(guān)于Python-assert(斷言)的用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!