欢迎光临散文网 会员登陆 & 注册

[oeasy]python0008-调试程序_debug

2022-10-17 07:39 作者:oeasy  | 我要投稿


调试程序 🥊

回忆上次内容

  • py 的程序是按照顺序执行的

    • 是一行行挨排解释执行的

    • 程序并不是数量越多越好

    • kpi也在不断演化

  • 写的代码越多

  • 出现的bug就越多

    • 什么是bug

    • 如何找bug呢?

尝试调试

  • 那如何调试呢?🤔


  • 首先要有这个guido.py

  • 然后放到网上系统的剪贴板上

尝试调试

  • 粘贴到vim中

  • 原来是一把执行

  • 现在可以一步一步调试运行

pdb3 guido.py

  • 使用pdb来进行调试

    • pdb的意思是python's debugger🤖

  • 为什么要逐步运行呢?

逐步运行

  • 由于程序不知道哪里出的问题

    • 所以一步步来执行

  • 一步步调试运行的目的是去除bug

    • 也就是debug

  • 可是为什么把程序错误叫做 bug 🪰 呢?

help

  • 不知道怎么办的时候

    • 就要求助(help)

  • 他给了我很多的命令

  • 还说可以help 一下具体 topic

  • 查看你哪个topic呢?

具体帮助

  • 查看帮助的帮助

  • 没有参数的话

    • 显示所有命令

  • 有一个参数

    • 显示这个参数的帮助

  • h(elp) 的缩写是 h

    • elp可以省略

  • 这并不难 h h

  • 再看看其他单词

list

  • l(ist)

    • 可以列出上下文11行的程序

    • 缩写是l

  • 当前行前面有个箭头 ->

使用命令

  • 确实可以看到上下文

  • ->代表着当前运行到了哪里

  • 怎么往下走呢?

next

  • n(ext)

    • 可以往前走一句

    • 缩写是n

  • 试一下

  • 把1982年输出了

  • 然后当前行来到了1995年

  • 如何判断1995年在整个程序中的位置呢?

执行

  • l(ist)

    • 可以列出当前行的上下文

  • 在第2行

    • next就会到第3行

  • 当然也可以一路next下去

一路next

  • 我们一路next

完成调试

  • 一路 next 下去

  • python 解释器

  • 就是这么一步步地解释执行的

  • 确实是顺序执行的

  • 一行行挨排儿执行的

  • 我们就一步步地把bug找出来

  • 就像找凶手一样!

最真实的解谜游戏

  • debug是我见过最真实的解谜游戏了

  • 比什么剧本杀好玩多了

  • 一步步地分析

  • 找不到罪魁祸首的时候

  • 需要冷静地分析

  • 找到罪魁祸首的时候

  • 那种快乐太真实了!!!!

  • 终于来到最后一行

  • 如果到这里再next

  • 会发生什么呢?

最后一步

  • 执行完最后一句之后

    • 就会返回(return)到python

    • 然后返回(return)到shell

  • 如果这个时候已经到了程序的尽头

  • 再next会发生什么呢?

绕圈

  • 到头了就又重来

    • 就会重新执行这个文件

    • 就圜道了

  • 可是这个和虫子(bug)有什么关系呢?

第一个错误 bug

  • 历史上第一个程序错误是

    • 这只虫子bug🪰

    • 飞进继电器(relay)计算机(computer)里面来

    • 导致当时的继电器短路

  • 所以后来

    • 管错误叫做bug

    • 管调试程序错误叫做 debug

总结

  • py 文件的程序是按照顺序

    • 一行行挨排解释执行的

    • 我们可以 pdb3 hello.py 来对程序调试

  • 顺序执行

    • 程序在文本中从上到下是一行行写的

    • 解释器是从上到下是一行行解释的

    • 调试也是从头到尾一行行执行的

  • 但是这一行行的是在有点慢啊

  • 毕竟我们都是经历过万行代码的人了

  • 那得按10000次的n才能执行完啊?

  • 有快点的方法吗?🤔

  • 我们下次再说!👋

  • 蓝桥->https://www.lanqiao.cn/teacher/workbench/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ


[oeasy]python0008-调试程序_debug的评论 (共 条)

分享到微博请遵守国家法律