Python断言assert语句详解:语法、自定义报错与实战应用

江岸
江岸
发布时间:2026-10-15 | 5人浏览过
原创

本文详细介绍Python中assert断言语句的用法,包括基本语法格式、当表达式为False时触发AssertionError异常的机制,以及如何自定义报错提示信息。通过多个代码示例,展示assert在判断表达式、文件存在性检查及调试中的应用,帮助开发者高效定位程序错误。

Python中的断言(assert)语句

assert语句的基本语法格式为【assert 表达式,可选的返回数据】。当括号内的表达式计算结果为False时,程序会立即触发AssertionError异常并终止执行;若结果为True,则程序继续正常执行。

try:
    n=input("请输入一个数字:")
    assert n.isdigit(),"只能输入数字"
    print("你输入的是:",n)
except Exception as ex:
    print("发现错误:",ex)

Python断言报错机制解析

assert语句主要用于验证某个表达式的真假。如果表达式结果为False,则抛出AssertionError异常;如果结果为True,则不执行任何操作,程序继续运行。

代码示例1:基础断言测试

  • 在In[1]中,执行assert 2>1,由于2大于1为True,断言通过,程序继续执行后续代码。
  • 在In[2]中,执行assert 1>2,由于1大于2为False,断言失败,程序抛出AssertionError异常并中断执行。

1. 设置自定义断言报错信息

Python允许开发者在assert语句中自定义报错提示信息,以便更清晰地定位错误来源。其格式如下:

assert + 空格 + 待判断的表达式 + 逗号 + 自定义报错字符串

代码示例2:自定义报错信息

通过设置AssertionError的自定义提示语句为“常数比较大小出错”,当断言失败时,开发者可以迅速知晓具体是哪个环节出现了bug,便于快速排查。

实际应用小案例:使用assert判断文件是否存在。

import os
path_txt = "test.txt"
assert os.path.exists(path_txt), "Not found text.txt"

假设程序路径中不存在test.txt文件,执行断言时将报错:

Traceback (most recent call last): File "F:/PycharmProjects/test_assert.py", line 3, in <module> assert os.path.exists(path_txt), "Not found text.txt" AssertionError: Not found text.txt

2. assert a,b 的另一种格式

还有一种常见的assert语法格式为 assert a,b。

该格式用于判断表达式a,如果a为False,则输出表达式b的值作为错误信息。

代码示例3:展示断言失败时的变量值

在报错提示AssertionError之后,输出了变量a的值1.2,帮助开发者了解失败时的具体数据状态。

代码示例4:展示断言失败时的变量类型

在报错提示AssertionError之后,输出了变量a的类型:<class ‘float’>,便于类型检查。

总结:assert语句是程序员设置报错提醒、及时中止程序并快速定位bug的有效工具。

以上为个人经验分享,希望能为大家提供参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表