第一种
print(),在有问题的变量位置加入print(),查看变量。
def foo(s):
n = int(s)
print('>>> n = %d' % n) #这里查看变量
return 10 / n
def main():
foo('0')
main()
第二种
把print()替换成assert。在cmd输入时可以关闭assert--python -0 name.py #name是需调试的文件名
def foo(s):
n = int(s)
assert n != 0, 'n is zero!' 当 n != 0 为True时,程序继续运行,否则返回字符串'n is zero'
return 10 / n
def main():
foo('0')
第三种
logging
import logging
logging.basicConfig(level=logging.INFO) #1这里有不同的级别依次是debug,info,warning,error,当高级别的先一步进入运算过程(代码是从上到下依次传入的),低级被的提醒就不会生效
logging.basicConfig(level=logging.WARNING) #2这里是低级被的info先传入,warning后传入
s = '0'
n = int(s)
logging.info('n = %d' % n) #3 info会生效
longging.warning('n = %d' % n) #4warning会生效
print(10 / n)
第四种
pdb 在cmd输入 python -m pdb name.py #name是需调试的文件名
输入 l 可以依次执行
输入n 可以单步执行
输入p 加变量名可以查看变量的值
输入q 结束
第五种
pdb.set_trace()
import pdb
s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停,进入pdb调试状态,第四种状态,输入c可以继续执行后面的程序
print(10 / n)