原文来自:https://blog.csdn.net/dlhlsc/article/details/84309410
jupyter的调试是通过python自带的pdb库来实现的。
下面讲一下在notebook中如何进行调试
1.首先需要
import pdb
2.然后在import后写入语句:
pdb.set_trace()
这个的作用是输入调试器。
- 下面以一段简单的代码为例展示几个功能:
打开jupyter的home页面新建一个文件输入以下语句
import pdb
pdb.set_trace()
def sum(a,b):
c=a+b
return c
a=1
b=2
c=sum(a,b)
print (c)
- 按cntrl+enter运行
进入到如下界面:
然后在此处输入一系列调试命令,下面先展示所有的命令:
命令 | 意义 |
---|---|
a | 打印当前函数的参数 |
b(break) | 设置断点 |
cl(clear) | 清除断点 |
c或者cont(continue) | 继续运行,直到遇到断点或者脚本结束 |
disable | 禁用断点 |
enable | 启用断点 |
h(help) | 查看pdb帮助 |
ignore | 忽略断点 |
j(jump) | 跳转到指定行数运行 |
l(list) | 列出脚本清单 |
n(next) | 执行下条语句,遇到函数不进入其内部 |
p | 打印变量值,也可以用print |
q(quit) | 退出pdb |
r(return) | 一直运行到函数返回 |
tbreak | 设置临时断点,断点只中断一次 |
s(step) | 执行下一条语句,遇到函数进入其内部 |
w(where) | 查看所在的位置 |
! | 在pdb中执行语句 |
断点:
输入:b 6
即在第6行打入断点。
再次输入:b 8,在第8行打入断点。
在打入断点后输入b可以查看当前程序的断点状态:
Num为断点的序号,Where为断点的位置。
continue
输入c后程序会继续执行直到结束或遇到下一个断点:
查看某些变量的值
输入:p a
可以看到变量a的值为1
- 执行下一步(n):
输入n执行下一步,但是若下一步会进入函数内部则不进入。
- 执行下一步(s):
step与next的区别在于他可以执行下一步是函数的语句,进入到函数内部。
8
11.执行打印函数参数(a):
至此在jupyter的一些简单调试便讲完了,欢迎大家一起分享jupyter的经验。