分享一个python调试程序BUG的技巧,有谁又会不出BUG呢
Posted shuchongzeishuai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享一个python调试程序BUG的技巧,有谁又会不出BUG呢相关的知识,希望对你有一定的参考价值。
在写程序的过程中,经常会遇到各种bug,而python的报错功能其实非常有限,我们仅仅依靠看报错提示,很难找到哪里出了错误!
今天就分享一个调试python程序的小技巧:
用input中断程序
用print输出可疑的变量
一:什么情况下可疑调试
学过Matlab的同学应该很容易理解我的意思,Matlab中有一个功能是专门用来调试程序的,可以让程序在特定的位置中断。但是python没有这个功能(特殊的编辑器除外)。不过我们可以用input中断程序。然后在input中断前print出可疑的变量我们举一个简单的例子。
a=3 b=9 c=a+b print(‘a+b等于‘,c) b=‘l‘ d=a-b print(‘a-b等于‘,d)
这是一个计算加减法的程序,首先计算a+b,然后打印出a+b。
随后,我们还有计算出a-b,并打印出来。
这个代码运行后出现了错误。
当然,这个简单的错误大家很容易看出来。错误在于第一个print之后,变量b变成了str型。而str型无法和int型的a做加减法运算。导致错误的产生。
由于这个程序代码很少,所以大家很容易就看出来了。
但是如果是几百行的代码,就很不容易找到错误的源头,这就需要用input中断程序,然后打印出可疑变量。
二:在哪里中断程序
调试程序需要结合报错提示,从报错提示中,我们可以看到是哪一行程序出了错误,然后在这一行的前面那一行中断。
之后,还要找出这个出错的一行代码,里面用到了哪些变量,用到的这些变量就是可以变量。
从上面的图我们可以看出,报错的代码是:d=a-b。也就是我用黑色的线画出来的那个。这个代码用到了两个变量进行计算,分别是a和b,报错的意思就是这两个代码的数据类型不合适,不能放在一起计算。
三:print出可以变量
找到出错的代码后,我们还要将里面的可以变量打印出来,也就是a和b。
print可疑变量的代码要刚好在input中断之前。这样可以准确的知道这些可疑变量在出错之前的数据类型。
因为变量的数据类型是会变化的,这个变量b在程序运行中变化了,所以不再适合计算。
我们打印出a和b的数据类型以后,发现b的数据类型是str。这就是错误的原因。
四:调试程序的延伸
找到错误的变量是b以后,我们还要知道,这个变量是在哪里出错的,这样,我们就需要在变量b出现的不同位置都进行一次print输出,看一看是在哪里出现的错误。
这一点没什么技巧,相信大家都能知道怎么做。
在这里还是要推荐下我自己建的Python开发学习群:1156465813,群里都是学Python开发的,如果你正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴!
以上是关于分享一个python调试程序BUG的技巧,有谁又会不出BUG呢的主要内容,如果未能解决你的问题,请参考以下文章