电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

Python常用斷言函數實例匯總

瀏覽:44日期: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 編程
相關文章:
主站蜘蛛池模板: 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 陕西自考报名_陕西自学考试网| 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 昊宇水工|河北昊宇水工机械工程有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 深圳湾1号房价_深圳湾1号二手房源 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | DDoS安全防护官网-领先的DDoS安全防护服务商| 同步带轮_同步带_同步轮_iHF合发齿轮厂家-深圳市合发齿轮机械有限公司 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | MES系统-WMS系统-MES定制开发-制造执行MES解决方案-罗浮云计算 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 |