Skip to content

Latest commit

 

History

History
125 lines (89 loc) · 2.95 KB

247-199151-调试程序.sy.md

File metadata and controls

125 lines (89 loc) · 2.95 KB
show version enable_checker
step
1.0
true

缩进调试

回忆

  • 上次学习了 if 单分支条件语句中的缩进块
  • 缩进的范围是程序逻辑的体现
    • 某行缩进与不缩进意味着这行是不是属于 if 的语句块
    • 这很好很显眼
    • 而且要注意变量声明最好在最前面做
    • 比较清晰
  • 毕竟
    • Readability counts.
    • 可读性很重要
  • 我们可以 debug 调试 这个程序么?🤔

改写程序

  • 为什么要调试程序呢?
  • 比如我的程序是下面这样的

图片描述

  • 把本来输入的变量
  • 变成了随机得到的变量值
  • random()在 0,1 之间
  • random()*4 在 0,4 之间
  • random()*4+36 在 36,40 之间抖动

图片描述

  • 我们一下子就直接得到最终的输出结果了
  • 但是如果我们想要深入程序内部
  • 一行行看着程序
  • 看他到底是怎么执行的
  • 这就需要调试 debug
  • 什么是 debug 呢?

调试

  • debug 就是一条一条语句依次执行用来找 bug
  • 我们现在开始编程
  • pdb3 if_statement.py

图片描述

图片描述

  • n 就是 next 可以执行下一条

查看本地变量

  • display t
  • 可以查看变量的值

图片描述

  • 可以查看帮助么?

查看帮助

  • 用 h 就可以

图片描述

  • 貌似可以设置断点
  • 什么是断点?

设置断点

  • 断点就是调试的时候
    • 程序运行时会自动停止的点
  • 设置断点
    • b 2
    • 在第 2 行添加一个断点
  • 设置条件断点
    • b 4,t>38
    • 在第 4 行添加条件断点
    • 断点条件为 t>38
  • 查看所有断点
    • break
  • 跳转到断点
    • c
    • 继续运行
    • 对应单词 continue

图片描述

打印变量

图片描述

  • 输出 print 变量
  • 输出变量类型 type
  • 这样我们就一步步调试了这个程序
  • 正如历代python程序员所做的那样
  • 我们去看看以前的if语句

if Guido...

图片描述

  • 这个有答案么?

回答

图片描述

  • 各种if语句都有相应的处理办法的

总结

  • 这次可以对预分支结构进行调试 debug
  • 可以列出程序
  • 并逐步执行
  • 可以设置断点,并跳转到断点
  • 可以输出变量的值和类型
  • 这个 if 判断的条件
  • 也就是 t>38 应该如何理解?🤔
  • 下次再说 👋