首页/新闻资讯/正文详情

Python Assert 语句

发布时间:2026/9/25 22:06:50 来源:云帆数科 栏目:资讯中心
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 不满足条件并给出了那个提示。要记住的关键点

相关推荐

云服务器怎么搭建python环境变量管理系统
云服务器怎么搭建python环境变量管理系统

要搭建一个系统用来管理环境变量这事儿, 它并不是简简单单就能弄好的, 你首先得具备一定的基础知识储备, 并且还要有一定的编程实际操作经验才行;接下来这儿有一个非常基础的系统框架可以摆在你的面前供你看一看, 这个框架可不是固定不变的死规矩, 它是可以根据你自… · 2026/9/25 22:06:00

阿里云 300万美金加入 Linux 基金会 Alibaba Cloud joins as a Founding Corporate Patron with $3 million
阿里云 300万美金加入 Linux 基金会 Alibaba Cloud joins as a Founding Corporate Patron with $3 million

阿里巴巴云正式加入 Omacom 基金会,成为创始企业赞助人,承诺每年出资 100 万美元,连续三年!这意味着总计 300 万美元的投入,与 DigitalOcean 的赞助金额持平,将全部用于 Omarchy 的开发、维护与推广。 但这… · 2026/9/25 22:05:54

Python开发必看:这8个坑90%的人都踩过
Python开发必看:这8个坑90%的人都踩过

Python以简洁优雅著称,但越是简洁的语言,越容易让人忽略底层的“反直觉”设计。很多开发者写了两三年Python,依然会在某些细节上栽跟头。下面这8个坑,几乎每个Python程序员都踩过至少三个,看看你中了几个。1. 可变默认… · 2026/9/25 22:05:29

Manus AI 多语言手写识别配置指南:TaoToken 统一 Key 接入与 settings.json 骨架
Manus AI 多语言手写识别配置指南:TaoToken 统一 Key 接入与 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 22:42:36

在线课堂微信小程序毕业设计:SSM+MySql从选型到答辩避坑指南
在线课堂微信小程序毕业设计:SSM+MySql从选型到答辩避坑指南

简介:本资源为在线课堂微信小程序毕业设计完整项目包,面向计算机相关专业需要完成毕业设计的学生及Java全栈初学者。项目基于微信小程序、SSM框架与MySQL数据库开发,覆盖管理员、教师、学生三类角色,包含班级管理、课程信息、作业… · 2026/9/25 22:42:30

jEasyUI DataGrid 排序从入门到实战:本地排序与服务端排序避坑指南
jEasyUI DataGrid 排序从入门到实战:本地排序与服务端排序避坑指南

1. 排序需求从哪来:DataGrid 排序的底层逻辑做前端维护的老手应该都有印象,EasyUI 这套组件库在后台管理系统里出镜率极高,尤其是 jEasyUI 的 DataGrid 表格组件。只要业务数据一多,"点击表头排序"就成了几乎必提的需求… · 2026/9/25 22:42:17

2026年AI编程工具横评:Cursor、Trae、Claude Code,到底该怎么选?TaoToken统一Key接入实测
2026年AI编程工具横评:Cursor、Trae、Claude Code,到底该怎么选?TaoToken统一Key接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 22:42:11

Modbus RTU实战调试:波形、时序与CRC三要素深度解析
Modbus RTU实战调试:波形、时序与CRC三要素深度解析

1. 这不是教科书,是我在产线调了73次Modbus RTU后撕下来的波形纸Modbus RTU不是协议栈里一段可配置的代码,它是AB线之间真实存在的电压跳变、是示波器上抖动的毛刺、是PLC扫描周期里被掐住喉咙的0.5毫秒、是CRC校验失败时PLC面板上那个不声不响却让整条灌… · 2026/9/25 22:42:05

2026 年必备的 AI 代码编辑器:TaoToken 统一 Key 接入 Trae/Cursor/Windsurf 配置指南
2026 年必备的 AI 代码编辑器:TaoToken 统一 Key 接入 Trae/Cursor/Windsurf 配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 22:42:05

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码