Python | assert关键字

这篇具有很好参考价值的文章主要介绍了Python | assert关键字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python断言assert是帮助代码流畅的调试工具。断言主要是假设程序员知道或总是希望是真的,因此将它们放在代码中,这样这些失败不会允许代码进一步执行。

简单地说,断言是一个布尔表达式,用来检查语句是True还是False。如果语句为True,则不执行任何操作并继续执行,但如果语句为False,则停止执行程序并抛出错误。

Python assert语句流程图

Python | assert关键字,python,python

Python assert关键字语法

语法: assert condition, error_message(optional)
参数
condition:返回True或False的布尔值条件。
error_message:在AssertionError的情况下,在控制台中打印的可选参数。
返回:AssertionError,如果条件计算为False。

在Python中,assert关键字有助于完成此任务。此语句接受一个布尔条件作为输入,当返回True时,不做任何事情并继续正常的执行流程,但如果计算结果为False,则引发AssertionError。

例如:

# initializing number
a = 4
b = 0
 
# using assert to check for 0
print("The value of a / b is : ")
assert b != 0
print(a / b)

输出

The value of a / b is : 
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Input In [19], in <cell line: 10>()
      8 # using assert to check for 0
      9 print("The value of a / b is : ")
---> 10 assert b != 0
     11 print(a / b)

AssertionError: 

这段代码试图通过在执行除法操作之前检查b的值是否为0。a初始化为4,b初始化为0。程序打印消息a / b的值是:assert语句检查b是否不等于0。由于b为0,assert语句失败并引发AssertionError。
由于失败的assert语句引发异常,程序终止,不再继续执行下一行的print语句。

带有error_message参数的assert

a = 4
b = 0
 
# using assert to check for 0
print("The value of a / b is : ")
assert b != 0, "Zero Division Error"
print(a / b)

输出

AssertionError: Zero Division Error

在函数内部使用assert断言

在本例中,assert语句用于函数内部,以在计算矩形的面积之前验证矩形的长度和宽度是否为正。如果断言为False,则会引发AssertionError,并显示消息“Length and width must be positive”。如果断言为True,则函数返回矩形的面积;如果为False,则退出并返回一个错误。为了展示如何在各种情况下使用assert,该函数被调用两次,一次使用正输入,一次使用负输入。

def calculate_rectangle_area(length, width):
    # Assertion to check that the length and width are positive
    assert length > 0 and width > 0, "Length and width"+ \
                "must be positive"
    # Calculation of the area
    area = length * width
    # Return statement
    return area
 
 
# Calling the function with positive inputs
area1 = calculate_rectangle_area(5, 6)
print("Area of rectangle with length 5 and width 6 is", area1)
 
# Calling the function with negative inputs
area2 = calculate_rectangle_area(-5, 6)
print("Area of rectangle with length -5 and width 6 is", area2)

带有布尔值条件的断言

在这个例子中,assert语句检查布尔条件x < y是否为真。如果断言失败,则引发AssertionError。如果断言通过,程序将继续并打印x和y的值。

# Initializing variables
x = 10
y = 20
 
# Asserting a boolean condition
assert x < y
 
# Printing the values of x and y
print("x =", x)
print("y =", y)

输出

x = 10
y = 20

检查变量类型的断言

在本例中,assert语句检查变量a和b的类型是否分别为str和int。如果任何断言失败,它将引发AssertionError。如果两个断言都通过,程序继续并打印a和b的值。

# Initializing variables
a = "hello"
b = 42
 
# Asserting the type of a variable
assert type(a) == str
assert type(b) == int
 
# Printing the values of a and b
print("a =", a)
print("b =", b)

输出

a = hello
b = 42

断言字典的值

# Initializing a dictionary
my_dict = {"apple": 1, "banana": 2, "cherry": 3}

# Asserting the contents of the dictionary
assert my_dict["apple"] == 1
assert my_dict["banana"] == 2
assert my_dict["cherry"] == 3

# Printing the dictionary
print("My dictionary contains the following key-value pairs:", my_dict)

输出

My dictionary contains the following key-value pairs: 
{'apple': 1, 'banana': 2, 'cherry': 3}

实际应用

这在任何开发领域的测试和质量保证角色中都有更大的用处。根据应用程序使用不同类型的断言。下面是一个简单的程序演示,该程序只允许调度所有热食品的批次,否则拒绝整个批次。

# initializing list of foods temperatures
batch = [40, 26, 39, 30, 25, 21]
 
# initializing cut temperature
cut = 26
 
# using assert to check for temperature greater than cut
for i in batch:
    assert i >= 26, "Batch is Rejected"
    print (str(i) + " is O.K" )

输出

40 is O.K
26 is O.K
39 is O.K
30 is O.K

运行时异常:

AssertionError: Batch is Rejected

为什么要使用Python assert语句?

在Python中,assert语句是一个强大的调试工具,可以帮助识别错误并确保代码按预期运行。下面是使用assert的几个理由:文章来源地址https://www.toymoban.com/news/detail-675133.html

  • 调试:代码所做的假设可以用assert语句进行验证。通过在整个代码中放置assert语句,可以快速找到错误并调试程序。
  • 文档:在代码中使用assert语句可以作为文档。断言语句使其他人更容易理解和使用您的代码,因为它们显式地描述了您的代码所做的假设。
  • 测试:为了确保满足某些需求,在单元测试中经常使用assert语句。通过在测试中合并assert语句,可以确保代码正常工作,并且所做的任何更改都不会损坏当前功能。
  • 安全性:您可以使用assert检查程序输入是否符合要求并验证它们。通过这样做,可以避免诸如缓冲区溢出和SQL注入攻击的安全缺陷。

到了这里,关于Python | assert关键字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【python基础】循环语句-continue关键字

    【python基础】循环语句-continue关键字

    continue的作用是:用来告诉 Python 跳过当前循环代码块中的剩余语句,然后继续进行下一轮循环。 其在while循环和for循环中的作用示意图如下 我们通过示意图发现,其只是中断本次循环,本次循环中在continue后面的代码语句将不被执行,直接转向条件测试,测试通过执行

    2024年02月08日
    浏览(10)
  • 【python基础】循环语句-break关键字

    【python基础】循环语句-break关键字

    break,其作用是在循环中的代码块遇到此,立刻跳出整个循环,执行循环外的下一条语句。 其在while和for循环中的作用示意图如下: 比如我们通过键盘输入单词,输出刚才的单词,编写程序如下所示: 我们发现当我们输入除了quit和break这两个单词之外,输出结果

    2024年02月08日
    浏览(12)
  • 【python基础】python中的with关键字及其相关用法

    【python基础】python中的with关键字及其相关用法

    目录 1.with  2.上下文管理器  3.总结  4.with torch.no_grad()的用法 在Python中, with 是一个,用于处理上下文管理器(context manager)。上下文管理器是一种对象,它定义了在进入和离开某个上下文时应该执行的操作。 with  语句使代码更清晰、更具可读性, 它简化了文

    2024年02月16日
    浏览(6)
  • Python批量实现word中查找关键字

    Python批量实现word中查找关键字

     一、背景         在日常办公和文档处理中,我们常常需要在大量的Word文档中查找特定的,然后进行接下来的操作,比如替换等。手动逐个打开并搜索文档显然是费时费力的。因此,利用Python编写一个批量实现Word中查找的程序可以大大提高效率和减

    2024年02月16日
    浏览(40)
  • Python 中的==操作符 和 is关键字

    Python 中的==操作符 和 is关键字

    Python是一种功能强大的通用编程语言,提供了各种比较值和对象的方法。其中包括==操作符和is,它们的用途不同,但由于它们有时可以达到相同的目的,所以经常会被混淆。在本文中,我们将深入研究==和is之间的区别,探索它们如何工作以及何时适当地使用它们。

    2024年02月03日
    浏览(11)
  • python+selenium自动化测试关键字驱动

    page2

    2024年02月11日
    浏览(10)
  • Python吴恩达深度学习作业24 -- 语音识别关键字

    Python吴恩达深度学习作业24 -- 语音识别关键字

    在本周的视频中,你学习了如何将深度学习应用于语音识别。在此作业中,你将构建语音数据集并实现用于检测(有时也称为唤醒词或触发词检测)的算法。识别是一项技术,可让诸如Amazon Alexa,Google Home,Apple Siri和Baidu DuerOS之类的设备在听到某个特定单词时回

    2024年02月11日
    浏览(12)
  • Python批量替换Excel和Word中的关键字

    有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉。因为这么多文件,要一个一个地打开文件,再进行批量替换修改,几个文件还好,如果是成百上千的文件,我想你一会儿就感觉自己被搞晕了,不仅搞不清

    2024年02月12日
    浏览(65)
  • python中自定义异常/raise关键字抛出异常

    在编程过程中合理的使用异常可以使得程序正常的执行。有直接抛出异常的形式,也能通过捕获异常加入异常时的业务逻辑处理。 创建自定义异常类案例 使用raise抛出异常案例 raise抛出异常主要是为了在特定的条件。 在调用throw_exception函数后,传入值为10时则抛

    2024年02月03日
    浏览(10)
  • Python UI自动化 —— 关键字+excel表格数据驱动

    Python UI自动化 —— 关键字+excel表格数据驱动

    1. 对selenium进行二次封装,创建的库 2. 准备一个表格文件来写入所有测试用例步骤 3. 对表格内容进行读取,使用映射关系来对用例进行调用执行     4. 执行用例 1. 对selenium进行二次封装,创建的库 2. 创建一个表格,写入测试步骤 将表格放入项目任意路径下,记

    2024年02月09日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包