Python Assert 语句

发布时间:2026/9/25 22:08:33

Python Assert 语句 我们要去搞明白, 到底什么叫做断言。断言是程序里用来坚定地声明或表明某个事实的语句。比如在编一个除法的函数时, 你内心非常确定, 那个除数是不应该等于零的, 所以你就发出了断言, 说明这个除数不是零。断言仅仅只是一个布尔表达式, 它的作用是用来检查某个具体的条件有没有返回出TRUE这个结果。假若该条件的结果是 TRUE, 那么程序就什么都不会去做, 而是直接接着去执行后面那一行的代码内容。然而呢, 一旦这个条件为 FALSE, 则程序立马就会停止下来, 并且同时还可能会抛出一个相关的错误信息。它同时具备一种调试工具的属性, 原因在于当错误情境出现的时候, 该程序会立刻停止运行操作, 并且将所发生的错误信息进行展示。我们可以通过下面的这种方式去进行查看, 就是流程图。这样大家就能看得很明白。语句有内置的 语句用于在程序中使用断言条件。 语句有一个条件或表达式它应该总是为 true。如果条件为 false 会停止程序并给出 。在对应的内容里面, 使用了相关的语法。assertassert ,在这其中, 我们能够按照上文那样提到过的, 对那个语句采取两种不同的使用方式。该语句包含一个判断条件, 假如这个条件是没法成立的, 那么程序就会终止运行, 并且还会显示出相应的提示内容。另外, 该语句也可以具备一个判断条件以及一个并非必须填写的错误说明信息, 一旦那个判断条件没有实现的时候, 程序便会被强制结束, 同时不但会停止操作, 而且还会输出指定的错误告知信息。让我们拿一个例子来说明, 比如说有一个函数, 这个函数的任务是计算用户传进来的那些值的平均数, 而且要注意到, 传入的这个值绝对不应当是那种空荡荡的列表状态, 我们会动用检查参数的语句去进行把关操作, 具体的做法就是, 一旦检测到那所传进来的列表里面的长度竟然为零的话, 整个程序就当即停止运作。这个示例在使用的时候, 是不包含错误信息的。def avg(marks):assert len(marks) ! 0return sum(marks)/len(marks)mark1 []print(Average of mark1:,avg(mark1))当我们运行上述程序时输出将是AssertionError我们收到了一个错误, 出现这个错误的原因在于, 我们把一个空的列表mark1传给了语句, 这就使得条件变成了false, 程序于是停止了运行, 并且给出了相应的反馈。现在我们要传入一个其他的列表进去, 这个列表会去满足条件的那个情况, 然后大家来看看具体的输出结果到底会是什么样子的呢。示例 2带错误消息使用def avg(marks):assert len(marks) ! 0,List is empty.return sum(marks)/len(marks)mark2 [55,88,78,90,79]print(Average of mark2:,avg(mark2))mark1 []print(Average of mark1:,avg(mark1))当我们运行上述程序时输出将是Average of mark2: 78.0AssertionError: List is empty.我们把非空列表 mark2 和空列表 mark1 传入给 avg() 函数, 我们得到了 mark2 列表的输出, 但之后我们得到了一个错误。这个错误是 “List is empty”。mark2 列表满足了那个条件。程序因此继续运行, 而 mark1 不满足条件并给出了那个提示。要记住的关键点
延伸阅读

更多相关文章

2026/9/25 22:08:33

校园论文选题系统开发实战:Laravel+uniapp+微信小程序

毕业论文选题,每年春季都是高校信息部门最头疼的环节。纸质表格传阅、Excel来回汇总、学生线下找老师签字协调,一套流程走下来少说两周,还免不了各种重复和错漏。后来我接手了一个校园团队的项目,用 Thinkphp/Laravel 作为后端、u…

2026/9/25 22:03:33

OpenHarmony上Flutter数字输入框适配:问题定位与修复实践

1. 为什么要在OpenHarmony上跑Flutter:适配方案选型与成本分析数字输入框组件看似简单,但在跨平台场景里往往是第一个暴露适配问题的“试金石”。我们团队在把一套基于Flutter开发的供应链管理App往OpenHarmony设备上迁移时,最先卡住的就是这…

2026/9/25 23:03:36

IPA转APK并非格式转换:H5混合应用换壳打包全流程解析

简介:一份面向iOS/Android跨端应用转换需求的IPA转APK辅助工具包,主要服务于希望在Android设备上使用iOS应用的用户、移动开发者及逆向爱好者。工具包内含可执行的转换程序与配套源码工程,通过源码目录可观察从解压IPA、完成Android端格式适配…

2026/9/25 23:03:36

独立站店铺越开越多,新品是不是要一个店一个店手动上架?

独立站店铺越开越多,新品是不是要一个店一个店手动上架?刚开始只有一两个店铺的时候,新品上架这件事感觉不上是什么负担,选好商品、写好描述、传上图片,半小时之内能搞定。但店铺数量涨到五个、十个之后,同样的新品要…

2026/9/25 23:03:36

Ubuntu 24.04 中文输入与显示全链路排错指南

1. 为什么 Ubuntu 24.04 的中文显示和输入不是“开箱即用”?很多人第一次在物理机或虚拟机里装完 Ubuntu 24.04 Desktop,点开终端敲ls,再打开文件管理器看下载目录——一切正常;可一旦新建个.txt文件写“测试中文”,或…

2026/9/25 23:03:36

Java项目管理平台毕设:从数据库设计到答辩全流程实战

简介:一套基于Java EE的项目管理平台毕业设计资源包,面向计算机软件工程专业学生与需要快速搭建毕设系统的开发者。随着企业项目信息日益分散,传统人工管理方式效率低下,该系统通过信息化手段集中处理项目相关事务,采用…

2026/9/25 23:03:36

HDU操作系统实验.zip解压到复现:伪加密修复与Linux环境避坑指南

简介:面向操作系统课程学习者的杭电操作系统实验源代码包,适合本科生对照课程要求完成实验、复习核心概念或准备课程设计。压缩包包含二十八份文件,以C语言源文件、头文件、主程序入口和Makefile构建脚本为主,并附有少量TXT说明、…

2026/9/25 22:58:36

UNSW-NB15网络攻击检测毕设源码实战:从环境配置到部署排坑

简介:面向计算机相关专业毕业设计、课程设计与入门实践的机器学习项目资源,围绕 UNSW-NB15 数据集提供网络攻击检测的完整算法实现。数据集涵盖多种现代攻击流量,项目基于经典监督学习思路,集中展示决策树二分类、逻辑回归与 KNN …

2026/9/25 21:00:17

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/25 20:59:52

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/25 0:02:35

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:02:35

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:02:35

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/25 18:41:36

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑