午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

Python常用斷言函數(shù)實(shí)例匯總

瀏覽:98日期:2022-07-03 16:29:39

Python assert 語句,又稱斷言語句,可以看做是功能縮小版的 if 語句,它用于判斷某個(gè)表達(dá)式的值,如果值為真,則程序可以繼續(xù)往下執(zhí)行;反之,Python 解釋器會(huì)報(bào) AssertionError 錯(cuò)誤。

assert 語句的語法結(jié)構(gòu)為:

assert 表達(dá)式

assert 語句的執(zhí)行流程可以用 if 判斷語句表示(等效),如下所示:

if 表達(dá)式==True:程序繼續(xù)執(zhí)行else:程序報(bào) AssertionError 錯(cuò)誤

有讀者可能會(huì)問,明明 assert 會(huì)令程序崩潰,為什么還要使用它呢?這是因?yàn)椋c其讓程序在晚些時(shí)候崩潰,不如在錯(cuò)誤條件出現(xiàn)時(shí),就直接讓程序崩潰,這有利于我們對程序排錯(cuò),提高程序的健壯性。因此,assert 語句通常用于檢查用戶的輸入是否符合規(guī)定,還經(jīng)常用作程序初期測試和調(diào)試過程中的輔助工具。下面的程序演示了 assert 語句的用法:

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)行該程序,測試數(shù)據(jù)如下:

90

數(shù)學(xué)考試分?jǐn)?shù)為: 90

再次執(zhí)行該程序,測試數(shù)據(jù)為:

159

Traceback (most recent call last):File 'C:UsersmengmaDesktopfile.py', line 3, in <module>assert 0 <= mathmark <= 100AssertionError

可以看到,當(dāng) assert 語句后的表達(dá)式值為真時(shí),程序繼續(xù)執(zhí)行;反之,程序停止執(zhí)行,并報(bào) AssertionError 錯(cuò)誤。

常用斷言函數(shù)常用

這里介紹幾個(gè)常用斷言的使用方法,可以一定程度上幫助大家對預(yù)期結(jié)果進(jìn)行判斷。-

assertEqual assertNotEqual assertTrue assertFalse assertIsNone assertIsNotNone assertEqual 和 assertNotEqual assertEqual:如兩個(gè)值相等,則pass assertNotEqual:如兩個(gè)值不相等,則pass

使用方法:

assertEqual(first,second,msg)其中first與second進(jìn)行比較,如果相等則通過;msg為失敗時(shí)打印的信息,選填;斷言assertNotEqual反著用就可以了。

assertTrue和assertFalse assertTrue:判斷bool值為True,則pass assertFalse:判斷bool值為False,則Pass

使用方法:

assertTrue(expr,msg)其中express輸入相應(yīng)表達(dá)式,如果表達(dá)式為真,則pass;msg選填;斷言assertFalse如果表達(dá)式為假,則pass assertIsNone和assertIsNotNone assertIsNone:不存在,則pass assertIsNotNone:存在,則pass

使用方法:

assertIsNone(obj,msg)檢查某個(gè)元素是否存在

總結(jié):

常用

assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b 2.7assertIsNot(a, b) a is not b 2.7assertIsNone(x) x is None 2.7assertIsNotNone(x) x is not None 2.7assertIn(a, b) a in b 2.7assertNotIn(a, b) a not in b 2.7assertIsInstance(a, b) isinstance(a, b) 2.7assertNotIsInstance(a, b) not isinstance(a, b) 2.7

其它

assertAlmostEqual(a, b) round(a-b, 7) == 0 assertNotAlmostEqual(a, b) round(a-b, 7) != 0 assertGreater(a, b) a > b 2.7assertGreaterEqual(a, b) a >= b 2.7assertLess(a, b) a < b 2.7assertLessEqual(a, b) a <= b 2.7assertRegexpMatches(s, re) regex.search(s) 2.7assertNotRegexpMatches(s, re) not regex.search(s) 2.7assertItemsEqual(a, b) sorted(a) == sorted(b) and works with unhashable objs 2.7assertDictContainsSubset(a, b) all the key/value pairs in a exist in b 2.7assertMultiLineEqual(a, b) strings 2.7assertSequenceEqual(a, b) sequences 2.7assertListEqual(a, b) lists 2.7assertTupleEqual(a, b) tuples 2.7assertSetEqual(a, b) sets or frozensets 2.7assertDictEqual(a, b) dicts 2.7assertMultiLineEqual(a, b) strings 2.7assertSequenceEqual(a, b) sequences 2.7assertListEqual(a, b) lists 2.7assertTupleEqual(a, b) tuples 2.7assertSetEqual(a, b) sets or frozensets 2.7assertDictEqual(a, b) dicts 2.7

使用時(shí)機(jī):

那么我們什么時(shí)候應(yīng)該使用斷言呢?如果沒有特別的目的,斷言應(yīng)該用于如下情況:

防御性的編程 運(yùn)行時(shí)對程序邏輯的檢測 合約性檢查(比如前置條件,后置條件) 程序中的常量 檢查文檔 例:防御性編程中添加斷言

在代碼開始添加注釋是個(gè)好的開端,但是人們都不太喜歡讀和更新這些注釋,這些注釋會(huì)很快變得過時(shí)。但對于斷言,我們可以同時(shí)對這塊代碼編寫文檔,如果這些斷言被違反了,會(huì)直接引起一個(gè)簡單而又直接的失敗。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 久久婷五月 | xxxx77hd国产| 久久国产精品-国产精品 | 麻豆精品一区二区三区视频 | 岛国大片在线免费观看 | 青青草97国产精品免费观看 | 久久精品成人一区二区三区蜜臀 | 久久免费福利视频 | 色一情一伦一子一伦一区 | 亚洲高清视频在线观看 | 在线永久看片免费的视频 | 日韩高清精品免费观看 | 日韩中文字幕一区 | 黄色xxx | 又黄又爽又色视频 | 日韩成人一区二区 | 天天操妹子| 日本精品视频在线播放 | 免费在线毛片 | 美女国产网站 | 宅男午夜影院 | 亚洲免费视频一区二区 | 国产一级精品视频 | 91网站免费视频 | 在线看www | 波多野结衣大片 | 中文字幕av网址 | 亚洲国产伊人 | 久久免费国产 | 日日狠狠| 亚洲欧美自拍一区 | 免费av一级片 | 四虎影院在线 | 日韩欧美中文字幕视频 | 国产精品久久久久久无人区 | 中文字幕第二页 | 精品久久久久久中文字幕 | 亚洲综合色在线 | 看av网址 | 在线看成人片 | 韩国三级av |