一、用print()函数直接把结果打出来调试
def say_hi(who):
print(who)
who = range(10)
print(who)
who.extend(range(10,20))
print(who)
who = 'you'
say_hi(who)
二、借助pdb模块调试
#编码一个python模块保存为debug_test.py
def add(a,b):
return a + b
a = 1
b = 1
c = add(a,b)
#pdb调试常用命令:
'''
1.b 8 : 在第8行打上断点
2.p a : 查看变量a的值
3.c :让代码运行,直到遇到断点停下来
4.n :运行下一行代码
5.l :查看当前运行的代码
5.h :查看pdb中支持的命令
6.q :退出pdb调式
'''
#pdb调试实例
'''
D:\>python -m pdb debug_test.py
> d:\test_wxx.py(3)<module>()
-> def add(a,b):
(Pdb) b 8
Breakpoint 1 at d:\test_wxx.py:8
(Pdb) p a
*** NameError: NameError("name 'a' is not defined",)
(Pdb) c
> d:\test_wxx.py(8)<module>()
-> c = add(a,b)
(Pdb) p a
1
(Pdb) p b
1
(Pdb) p c
*** NameError: NameError("name 'c' is not defined",)
(Pdb) c
The program finished and will be restarted
> d:\test_wxx.py(3)<module>()
-> def add(a,b):
(Pdb) p c
*** NameError: NameError("name 'c' is not defined",)
(Pdb) l
1 #-*- coding:gbk -*-
2
3 -> def add(a,b):
4 return a + b
5
6 a = 1
7 b = 1
8 B c = add(a,b)
[EOF]
(Pdb) c
> d:\test_wxx.py(8)<module>()
-> c = add(a,b)
(Pdb) n
--Return--
> d:\test_wxx.py(8)<module>()->None
-> c = add(a,b)
(Pdb) b
Num Type Disp Enb Where
1 breakpoint keep yes at d:\test_wxx.py:8
breakpoint already hit 2 times
(Pdb) p c
2
(Pdb)
'''
三、在IDE编辑工具中调试