python如何调试_调试Python程序代码的几种方法总结

这篇文章主要介绍了调试

Python

程序代码的几种方法总结

,

文中代码基于

Python2.x

,

需要的朋友可以参考下

程序能一次写完并正常运行的概率很小,基本不超过

1%

。总会有各种各样的

bug

需要

修正。有的

bug

很简单,看看错误信息就知道,有的

bug

很复杂,我们需要知道出错时,哪

些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复

bug

第一种方法简单直接粗暴有效,就是用

print

把可能有问题的变量打印出来看看:

# err.py

def foo(s):

n = int(s)

print '>>> n = %d' % n

return 10 / n

def main():

foo('0')

main()

执行后在输出中查找打印的变量值:

$ python err.py

>>> n = 0

Traceback (most recent call last):

...

ZeroDivisionError: integer division or modulo by zero

print

最大的坏处是将来还得删掉它,想想程序里到处都是

print

,运行结果也会包含

很多垃圾信息。所以,我们又有第二种方法。

断言

凡是用

print

来辅助查看的地方,都可以用断言

(assert)

来替代:

# err.py

def foo(s):

n = int(s)

assert n != 0, 'n is zero!'

return 10 / n

def main():

foo('0')

assert

的意思是,表达式

n != 0

应该是

True

,否则,后面的代码就会出错。

如果断言失败,

assert

语句本身就会抛出

AssertionError

$ python err.py

Traceback (most recent call last):

...

AssertionError: n is zero!

程序中如果到处充斥着

assert

,和

print

相比也好不到哪去。不过,启动

Python

解释器

时可以用

-O

参数来关闭

assert

$ python -O err.py

Traceback (most recent call last):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值