1、第一种方式使用print ()函数输出可能的错误
2、使用断言assert
assert n!=0,' n is zero '
变成n! 如果=0,则断言为True,否则断言失败,抛出AssertionError
启动Python解释器后,可以用-O关闭断言。 关闭的断言相当于pass语句。 python -O demo.py
3、使用logging
导入日志
logging.basic config (level=logging.info ) )。
logging.info('n=%d'%n ) ) )。
logging提供了几个级别:调试、信息、警告和错误,但如果指定level=INFO、logging.debug则不起作用。 同样,如果指定level=WARNING,调试和信息将不再起作用。 这样,就可以放心地输出各个级别的信息,无需删除,就可以统一控制最后输出哪个级别的信息。 logging的另一个优点是,可以使用简单的配置将一条语句同时输出到不同的位置,如控制台和文件。
4、使用pdb :启动Python的调试器pdb,使程序单步运行,随时可以看到运行状态。
python -m pdb err.py
用参数-m pdb启动时,pdb位于下一个要执行的代码- s='0'中。
输入命令l以显示代码; 输入命令n可以进一步执行代码。
可以随时通过输入命令p变量名称来显示变量;
键入命令q以结束调试并退出程序。
通过pdb在命令行调试的方法理论上是万能的,但真的很麻烦。 如果有一千行代码,要运行到第999行必须敲多少命令? 没关系。 还有一种调试方法。
5、使用
pdb.set_trace (
该方法也使用pdb,但不需要一步执行。 只有导入pdb。 然后,通过将pdb.set_trace ()放在可能出现错误的位置,可以设置断点。 运行代码时,程序将自动暂停在pdb.set_trace ()上并进入pdb调试环境。 可以用命令p显示变量,也可以用命令c继续执行。