调试

第一种

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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值