Python断言

一、概述

assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件

二、语法

1、不带参数

assert expression

等价于:

if not expression:
    raise AssertionError

2、带参数

assert 后面也可以紧跟参数:

assert expression [, arguments]

等价于:

if not expression:
    raise AssertionError(arguments)

        其中,expression 是一个需要进行断言检查的表达式,如果表达式的结果为 True,则断言通过,程序继续执行;如果表达式的结果为 False,则断言失败,程序会抛出 AssertionError 异常。message 是可选的参数,用于在断言失败时输出自定义的错误信息。

assert 的主要作用是在开发和调试阶段对代码进行断言检查,以确保程序的正确性。在生产环境中,通常会关闭断言检查,以避免额外的性能开销。

三、为True通过,False不通过

常用的断言

  • assert 数据1==数据2
    • 判断数据1与数据2是否相等,相等则为True通过
  • assert str1 in str2
    • 判断后面字符串是否包含前面字符串,包含则为True通过,否则不通过,必须连续,不能有间隔 不能跳字符
  • assert True 或非0
    • 直接通过
  • assert False 或0
    • 直接不通过
# 检查某个条件是否为真,如果为假则抛出 AssertionError
x = 5
assert x > 0, "x 应该大于 0"

# 可选的错误信息参数可以提供更多的上下文信息
y = 0
assert y != 0, "y 不应该等于 0,但实际上 y = {}".format(y)

# 在调试阶段,使用 assert 进行变量值的断言检查
z = 10
assert z != 10, "z 的值应该为 10"

# assert 语句可以与任何表达式一起使用
assert (x > 0) and (y != 0) and (z == 10), "条件不满足"

四、使用 -O(大写的字母O)参数启用优化模式

        使用 -O 参数可以启用 Python 解释器的优化模式。在这种模式下,Python 解释器会忽略代码中所有带有 assert 关键字的语句,因此在生产环境中,可以通过这种方式关闭断言检查,以避免因断言检查而引入额外的性能开销。

在命令行中,可以通过以下方式来运行 Python 程序并启用优化模式:

python -O your_script.py

这样就可以在生产环境中关闭断言检查,确保程序的性能不受影响。

你可能感兴趣的:(Python基础语法,python)