python中debug有什么用途_在Python中使用“assert”有什么用?

我一直在阅读一些源代码,在一些地方我已经看到了

assert的用法。

这究竟是什么意思? 它的用途是什么?

#1楼

断言语句有两种形式。

简单的形式,

assert ,相当于

if __debug__:

if not : raise AssertionError

扩展形式

assert , 等同于

if __debug__:

if not : raise AssertionError,

#2楼

这是一个简单的例子,将其保存在文件中(假设为b.py)

def chkassert(num):

assert type(num) == int

chkassert('a')

$python b.py时的结果

Traceback (most recent call last): File "b.py", line 5, in

chkassert('a') File "b.py", line 2, in chkassert

assert type(num) == intAssertionError

#3楼

断言是一种系统的方法,用于检查程序的内部状态是否与程序员预期的一样,目的是捕获错误。 请参阅下面的示例。

>>> number = input('Enter a positive number:')

Enter a positive number:-1>>> assert (number > 0), 'Only positive numbers are allowed!'Traceback (most recent call last):

File "", line 1, in AssertionError: Only positive numbers are allowed!>>>

#4楼

如果assert之后的语句为true,则程序继续,但如果assert之后的语句为false,则程序会给出错误。 就那么简单。

例如:

assert 1>0 #normal executionassert 0>1 #Traceback (most recent call last):

#File "", line 1, in

#assert 0>1

#AssertionError

#5楼

format:assert Expression [,arguments]当assert遇到一个语句时,Python会计算表达式。如果该语句不为true,则引发异常(assertionError)。 如果断言失败,Python使用ArgumentExpression作为AssertionError的参数。 可以使用try-except语句像任何其他异常一样捕获和处理AssertionError异常,但如果不处理,它们将终止程序并产生回溯。 例:

def KelvinToFahrenheit(Temperature):

assert (Temperature >= 0),"Colder than absolute zero!"

return ((Temperature-273)*1.8)+32 print KelvinToFahrenheit(273)

print int(KelvinToFahrenheit(505.78))

print KelvinToFahrenheit(-5)

执行上面的代码时,会产生以下结果:

32.0

451

Traceback (most recent call last):

File "test.py", line 9, in

print KelvinToFahrenheit(-5)

File "test.py", line 4, in KelvinToFahrenheit

assert (Temperature >= 0),"Colder than absolute zero!" AssertionError: Colder than absolute zero!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值