python调试

作者 新城 日期 2017-08-27
python调试

python调试

方法一:print

将可能有问题的变量直接打印出来

1
2
3
4
5
6
7
8
9
def foo(s):
n = int(s)
print('>>> n = %d' % n)
return 10 / n

def main():
foo('0')

main()

方法二:断言

1
2
3
4
5
6
7
def foo(s):
n = int(s)
assert n != 0, 'n is zero!' #断言
return 10 / n

def main():
foo('0')

assert的意思是,表达式n != 0应该是True,否则,根据程序运行的逻辑,后面的代码肯定会出错

方法三:logging

1
2
3
4
5
6
7
import logging
logging.basicConfig(level=logging.INFO) #添加配置

s = '0'
n = int(s)
logging.info('n = %d' % n)
print(10 / n)

1.允许制定信息级别 dubug,info,warning,error等几个级别。

  1. logging的另一个好处是通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件

方法四:pdb
启动python 的调试器,让程序以但不方式运行,可以随时查看运行状态

1
2
3
4
# err.py
s = '0'
n = int(s)
print(10 / n)

执行python3 -m pdb err.py
输入命令n可以单步执行下一步
输入命令p+变量名来查看变量
输入命令q结束调试 退出程序

方法五:pdb.set_trace()
在需要暂停的地方设置断点

1
2
3
4
5
6
7
import pdb  #导入pab

s = '0'
n = int(s)
pdb.set_trace() #运行到此处程序会暂停

print(10 / n)

使用命令p查看变量 使用变量c 继续运行

方法六:PyCharm设置断点