亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python常用斷言函數實例匯總

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

Python assert 語句,又稱斷言語句,可以看做是功能縮小版的 if 語句,它用于判斷某個表達式的值,如果值為真,則程序可以繼續往下執行;反之,Python 解釋器會報 AssertionError 錯誤。

assert 語句的語法結構為:

assert 表達式

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

if 表達式==True:程序繼續執行else:程序報 AssertionError 錯誤

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

mathmark = int(input())#斷言數學考試分數是否位于正常范圍內assert 0 <= mathmark <= 100#只有當 mathmark 位于 [0,100]范圍內,程序才會繼續執行print('數學考試分數為:',mathmark)

運行該程序,測試數據如下:

90

數學考試分數為: 90

再次執行該程序,測試數據為:

159

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

可以看到,當 assert 語句后的表達式值為真時,程序繼續執行;反之,程序停止執行,并報 AssertionError 錯誤。

常用斷言函數常用

這里介紹幾個常用斷言的使用方法,可以一定程度上幫助大家對預期結果進行判斷。-

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

使用方法:

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

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

使用方法:

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

使用方法:

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

總結:

常用

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

使用時機:

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产精品vs欧美精品 | 高清在线不卡 | 欧美精品亚洲网站 | 久热99这里只有精品视频6 | 国产精品亚洲欧美云霸高清 | 日韩一区二区在线视频 | 色综合网亚洲精品久久久 | 国产资源在线免费观看 | 一级特黄性色生活片一区二区 | 国产三级观看 | 春色视频一区二区三区 | 国产成人精品cao在线 | 色综合免费视频 | 免费国产精品视频 | 视频一区 精品自拍 | 精品久久久视频 | 免费一级特黄特色大片在线观看看 | 色综合综合 | 黑人解禁hd在线观看 | 国产一线视频在线观看高清 | 欧美日韩综合一区 | 亚洲精品美女在线观看 | 国产精品成人扳一级aa毛片 | 免费污污视频网站 | 国产日产欧产精品精品推荐在线 | 亚洲国产精品嫩草影院久久 | 国产精品第一页在线 | 超色软件| 亚洲精品影院 | 亚洲影音先锋看看 | 亚洲 欧美 国产 中文 | 综合欧美日韩一区二区三区 | 国外欧美一区另类中文字幕 | 亚洲精品中文字幕第一区 | 久久综合九色综合97婷婷女人 | 国产精品高清全国免费观看 | 三级理论中文字幕在线播放 | 亚洲精品高清国产一久久 | 一级黄色毛片免费看 | 欧美国产中文 | 午夜视频网站在线观看 |