python如何进行调试_如何调试Python程序

工欲善其事,必先利其器。程序猿们往往喜欢挑一个最爱的开发环境。可是Pycharm,Eclipse,Komodo,Eric,WingWare。。。这么多Python的IDE看花眼了怎么办?即使你用baidu大法选好了一个你满意的,然后各种秘籍快捷都用熟用烂了。如果有一天,我是说如果,你心目中的女神找你帮忙看看代码,“你好,能帮我看一下这个问题是怎么回事吗?”,你心想我苦苦修炼的各种招式终于派上用场了。怀揣着激动和梦想跑过去一看,结果女神的机器并没有安装你用的烂熟的高大上工具,只有代码编辑器和终端命令窗口,这时你该如何让女神对你刮目相看?不想杯具的话,就继续阅读吧。

相信即使不用IDE你也应该有一套自己的独门秘笈,这里介绍介绍我的。

print大法一定是初学者首选。

觉得哪里有问题,就把哪里的变量打印出来看看。

优点:

简单易行

缺点:

release前要全注释掉,增加重复工作量,不能忍

将print改为logging.debug(),就可以通过配置level达到log分级输出。

DEBUG

importlogging

logging.basicConfig(

level=logging.WARNING,

format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',

datefmt='%a, %d %b %Y %H:%M:%S'

)

logging.debug('This is debug message')

logging.info('This is info message')

logging.warning('This is warning message')

运行发现,log只显示warning信息。

加上filename参数还能很方便的支持输出log到文件,比如:

importlogging

logging.basicConfig(

level=logging.WARNING,

format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',

datefmt='%a, %d %b %Y %H:%M:%S',

filename='test.log',

filemode='w')

从此我就喜欢上logging,只在代码编写初期顺手用一下print

不过有时候我预先并不知道问题在哪里,我也不是大牛,我羡慕那些用着支持断点调试开发环境的猿类。直到我遇到它。

pdb是python自带的调试库,当我想让程序停在某个地方,然后一步一步运行程序并且查看变量时,我只需要加入下面的代码

a=1

b=2

importpdb

pdb.set_trace()

c=b*a

d=b/a

printd,c

然后有n(ext),s(tep),c(ontinue), b(reak),cl(ear)等一系列命令支持,我就等于有了一套支持断点调试的开发环境。

可是这里还是有个问题,就是刚才加入的调试代码在release前还要注释掉。

pdb的作者一定也考虑了这个问题。因此有了命令形式进入调试模式。

python-mpdbscript.py

代码会在一开始停住,相当于你在程序开始运行第一行加了个断点。然后用命令b(reak)在你希望的行上加断点,然后c(ontinue)就可以啦。

用了pdb,妈妈再也不用担心我调程序了。可是爸爸有疑问了。有时候程序运行好久忽然崩溃了,我还不知道它崩在哪里,意思就是断点都不知道设在哪,怎么办。

怎样在崩溃时自动进入调试模式,这个问题困扰我很久,直到我学会上stackoverflow,发现那个牛人聚集的地方。

当你在有问题的代码前加上这段代码,它就可以帮助你在异常时进入ipdb调试模式。前提是你要安装ipython。

importsys

fromIPython.coreimportultratb

sys.excepthook = ultratb.FormattedTB(mode='Verbose',

color_scheme='Linux', call_pdb=1)

你也可以把上面的代码保存成crash_debug.py,然后在你出问题的文件test.py头上加上

importcrash_debug

foriinrange(10,-1,-1):

y=1/i

执行python test.py后输出如下:

49f303c4927c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

大功告成。有了这四大法宝,我就再没有纠结过装哪个开发环境的问题。

你有什么独门秘笈,也拿来分享一下吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python串口调试助手是一种用于调试串口通信的工具,可以帮助开发人员在开发和测试过程中轻松地对串口进行读写操作。它提供了一个用户友好的图形界面,让用户可以轻松设置串口参数、发送和接收数据。 Python串口调试工具的源码是指这个工具的程序代码,用户可以根据自己的需求进行定制和修改。这份源码通常由多个Python脚本组成,其中包括用于创建图形界面的代码、串口通信的代码以及其他必要的辅助代码。 在源码中,我们通常可以找到以下几个重要的部分: 1. 串口配置:这部分代码用于设置串口的端口号、波特率、数据位、校验位等参数。用户可以根据自己的需求进行相应的配置。 2. 数据发送和接收:这部分代码用于发送数据和接收串口数据。用户可以在界面上输入要发送的数据,并能实时看到串口接收到的数据。 3. 图形界面:这部分代码用于创建图形界面,并包括了用户对串口参数的配置、发送数据的输入框、接收数据的显示框等组件。 通过修改源码,用户可以根据自己的需求进行定制开发,添加其他功能,比如数据处理、协议解析等。此外,用户还可以根据源码学习串口通信的实现原理和相关编程知识,以便更好地理解和应用串口通信技术。 总而言之,Python串口调试助手和它的源码提供了一个方便且灵活的工具,用于开发人员进行串口通信的调试和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值