调试程序
回顾上次内容
py
的程序是依照程序执行的- 是一行行挨排解释执行的
- 程序并不是数量越多越好
- kpi也在一直演变
写的代码越多
- 呈现的bug就越多
那什么是bug呢?
- 如何找bug呢?
尝试调试
- 想要调试程序找bug
- 首先得有一个程序
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
的意思是p
ython'sd
eb
ugger
- 为什么要逐渐运行呢?
逐渐运行
因为程序不晓得哪里出的问题
- 所以一步步来执行
一步步调试运行的目标是去除
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... 作者:oeasy