关于python:oeasypython0007调试程序debug

36次阅读

共计 1508 个字符,预计需要花费 4 分钟才能阅读完成。

调试程序 🥊

回顾上次内容

  • py 的程序是依照程序执行的

    • 是一行行挨排解释执行的
    • 程序并不是数量越多越好
    • kpi 也在一直演变
  • 写的代码越多

    • 呈现的 bug 就越多
    • 什么是 bug
    • 如何找 bug 呢?

尝试调试

  • 那 python 程序到底是怎么一步步解释执行的呢?🤔
print("1982------Guido in cwi")
print("1995------Guido in cnri")
print("2000------Guido in beopen")
print("2005------Guido in google")
print("2012------Guido in dropbox")
print("2020------Guido in microsoft")
  • 首先要有这个 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/teache…
  • github->https://github.com/overmind19…
  • gitee->https://gitee.com/overmind198…
  • 视频 ->https://www.bilibili.com/vide…

正文完
 0