最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年11月30日 14:41:51   作者:-零  
這篇文章主要介紹了Python常用斷言函數(shù)實(shí)例匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Python assert 語(yǔ)句,又稱(chēng)斷言語(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ò)誤

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

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ò)誤。

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

這里介紹幾個(gè)常用斷言的使用方法,可以一定程度上幫助大家對(duì)預(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)行比較,如果相等則通過(guò);msg為失敗時(shí)打印的信息,選填;斷言assertNotEqual反著用就可以了。

  • assertTrue和assertFalse
  • assertTrue:判斷bool值為T(mén)rue,則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.7
assertIsNot(a, b) a is not b 2.7
assertIsNone(x) x is None 2.7
assertIsNotNone(x) x is not None 2.7
assertIn(a, b) a in b 2.7
assertNotIn(a, b) a not in b 2.7
assertIsInstance(a, b) isinstance(a, b) 2.7
assertNotIsInstance(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.7
assertGreaterEqual(a, b) a >= b 2.7
assertLess(a, b) a < b 2.7
assertLessEqual(a, b) a <= b 2.7
assertRegexpMatches(s, re) regex.search(s) 2.7
assertNotRegexpMatches(s, re) not regex.search(s) 2.7
assertItemsEqual(a, b) sorted(a) == sorted(b) and works with unhashable objs 2.7
assertDictContainsSubset(a, b) all the key/value pairs in a exist in b 2.7
assertMultiLineEqual(a, b) strings 2.7
assertSequenceEqual(a, b) sequences 2.7
assertListEqual(a, b) lists 2.7
assertTupleEqual(a, b) tuples 2.7
assertSetEqual(a, b) sets or frozensets 2.7
assertDictEqual(a, b) dicts 2.7
assertMultiLineEqual(a, b) strings 2.7
assertSequenceEqual(a, b) sequences 2.7
assertListEqual(a, b) lists 2.7
assertTupleEqual(a, b) tuples 2.7
assertSetEqual(a, b) sets or frozensets 2.7assertDictEqual(a, b) dicts 2.7

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

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用?Python?腳本實(shí)現(xiàn)電腦喚醒后自動(dòng)拍照并截屏發(fā)郵件通知

    用?Python?腳本實(shí)現(xiàn)電腦喚醒后自動(dòng)拍照并截屏發(fā)郵件通知

    這篇文章主要介紹了用?Python?腳本實(shí)現(xiàn)電腦喚醒后自動(dòng)拍照并截屏發(fā)郵件通知,文中詳細(xì)的介紹了代碼示例,具有一定的 參考價(jià)值,感興趣的可以了解一下
    2023-03-03
  • python語(yǔ)言使用技巧分享

    python語(yǔ)言使用技巧分享

    下面小編就為大家?guī)?lái)一篇python語(yǔ)言使用技巧分享。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 利用Python+PyQt5實(shí)現(xiàn)簡(jiǎn)易瀏覽器的實(shí)戰(zhàn)記錄

    利用Python+PyQt5實(shí)現(xiàn)簡(jiǎn)易瀏覽器的實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于如何利用Python+PyQt5實(shí)現(xiàn)簡(jiǎn)易瀏覽器的相關(guān)資料,Qt 的主要優(yōu)勢(shì)是可以開(kāi)發(fā)跨平臺(tái)的圖形界面程序,基于 Qt 的應(yīng)用能夠借助于各平臺(tái)的原生性在不同類(lèi)的設(shè)備上運(yùn)行,而無(wú)須修改任何代碼庫(kù),需要的朋友可以參考下
    2021-07-07
  • Python 輸入一個(gè)數(shù)字判斷成績(jī)分?jǐn)?shù)等級(jí)的方法

    Python 輸入一個(gè)數(shù)字判斷成績(jī)分?jǐn)?shù)等級(jí)的方法

    今天小編就為大家分享一篇Python 輸入一個(gè)數(shù)字判斷成績(jī)分?jǐn)?shù)等級(jí)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • python opencv通過(guò)4坐標(biāo)剪裁圖片

    python opencv通過(guò)4坐標(biāo)剪裁圖片

    圖片剪裁是常用的方法,那么如何通過(guò)4坐標(biāo)剪裁圖片,本文就詳細(xì)的來(lái)介紹一下,感興趣的小伙伴們可以參考一下
    2021-06-06
  • python通過(guò)post提交數(shù)據(jù)的方法

    python通過(guò)post提交數(shù)據(jù)的方法

    這篇文章主要介紹了python通過(guò)post提交數(shù)據(jù)的方法,涉及Python使用post方式傳遞數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python中cv2.Canny() 函數(shù)使用方法

    Python中cv2.Canny() 函數(shù)使用方法

    cv2.Canny() 函數(shù)是 OpenCV 中的邊緣檢測(cè)函數(shù)之一,用于檢測(cè)圖像的邊緣,它的基本原理是通過(guò)計(jì)算圖像中每個(gè)像素點(diǎn)的梯度值來(lái)檢測(cè)邊緣,本文通過(guò)示例代碼介紹Python中cv2.Canny() 函數(shù)用法,需要的朋友參考下吧
    2023-07-07
  • 詳解NumPy中的線(xiàn)性關(guān)系與數(shù)據(jù)修剪壓縮

    詳解NumPy中的線(xiàn)性關(guān)系與數(shù)據(jù)修剪壓縮

    本文將通過(guò)股票均線(xiàn)計(jì)算的案例來(lái)為大家講解一下NumPy中的線(xiàn)性關(guān)系以及數(shù)據(jù)修剪壓縮的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-05-05
  • 將Python代碼打包為jar軟件的簡(jiǎn)單方法

    將Python代碼打包為jar軟件的簡(jiǎn)單方法

    這篇文章主要介紹了將Python代碼打包為jar軟件的簡(jiǎn)單方法,一些情況下會(huì)有利于Python和Java項(xiàng)目之間的協(xié)作,需要的朋友可以參考下
    2015-08-08
  • 詳解Python的爬蟲(chóng)框架 Scrapy

    詳解Python的爬蟲(chóng)框架 Scrapy

    這篇文章主要介紹了Python的爬蟲(chóng)框架 Scrapy的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08

最新評(píng)論

荥阳市| 小金县| 东阳市| 韶山市| 房产| 乌兰浩特市| 鄂伦春自治旗| 佛山市| 济源市| 松原市| 石泉县| 辉县市| 新巴尔虎左旗| 高邮市| 专栏| 老河口市| 防城港市| 长沙县| 门头沟区| 唐海县| 黄梅县| 江阴市| 阳江市| 龙陵县| 蒙城县| 前郭尔| 随州市| 长武县| 彭山县| 延长县| 枣阳市| 长子县| 宜阳县| 金平| 长海县| 定日县| 奉新县| 综艺| 望都县| 景谷| 剑川县|