聪明办法学Python-2023-拓展02

发布时间 2023-12-07 16:18:11作者: Lyanv

参考文章:快速掌握如何用Python debug-CSDN博客

参考视频:聊聊如何为Python程序Debug_哔哩哔哩_bilibili

拓展02

如何Debug

在计算机中 ,我们将机器看作状态机,同时我们遵循计算机不会犯错的原则,因此,当你设计的程序产生了与你意料相悖的结果,那就可以认为你的程序产生了bug。

计算机永远是对的

1.调试困难的根本原因

因为bug的产生过程我们不得而知,我们仅仅只能知晓一个输出的结果

在现在软件中,bug可以分为如下的两类

理解需求的不同产生的bug:我们在设计程序时偏离了最初规划的功能,导致最后设计出的程序没有办法完好的满足用户需求,这就属于第一类bug。
具体实现中的bug:因为技术原因,在实现过程中,我们实现的程序不能很好地完成为其设定的任务,究其根本是我们为这个任务设定的数学模型存在纰漏,这就属于第二类bug。
这里以我们的OJ举例,完成OJ上任务的基本步骤就是读懂题面,了解你要实现什么样的程序,接着写出相对应的程序,也就是在数学上实现这个问题的解,第一步对于我们而言都比较简单,而第二步,也是我们最容易犯,最需要注意,最需要debug的部分。

2.看懂报错信息

解释器和python版本不对应也可能产生bug

报错信息在一行解释器都会告诉你(只能解决一些简单的bug)

3.利用print()解决一些简单的bug

可以打印所需的数据,看看输出的数据和你预想中的数据处理方式是不是一样来层层debug

4.assert()方法

断言,可以在数据条件不满足表达式时输出AssertionError,强行停止用于检测数据范围

5.利用IDE进行debug

vscode中可以新建个json文件进行调试

其中,request是一个特别重要的参数(有launch和attach 等)

launch是用vscode进行一个独立的debug过程

program则是程序的执行路径

console是执行的终端(这里是默认vs的终端)

断点调试

左边这里打上红点了就代表断点上成功了

每运行到一个断点就会暂停一次

这些是调试的工具栏

第一个是继续运行直到下一个断点

第二个是只执行一行

第三个是单步调试(可以进函数内部进行调试)

第四个是单步跳出,用于跳出函数

第五个是重启代码(重新运行)

第六个是停止程序

6.AI调试

可以用vscode的Bito AI Code Assistant的AI插件进行debug

返回的错误不是很了解或者一些逻辑错误可以利用它查找