分享一个python调试程序BUG的技巧,有谁又会不出BUG呢

2021-03-21 12:26

阅读:512

标签:学习python   div   理解   pst   出错   导致   第一个   怎么   rgb   

在写程序的过程中,经常会遇到各种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呢

标签:学习python   div   理解   pst   出错   导致   第一个   怎么   rgb   

原文地址:https://www.cnblogs.com/shuchongzeishuai/p/13901192.html


评论


亲,登录后才可以留言!