前言
- print很好用,遇到错误就print,实在不行就多几个pirnt
- 这样就出现了满屏幕的print,麻烦而且不省事,当然,在你明确知道某个位置可能会出错,print还是很有用
- 但只会用print远远不够,你需要在一片代码中快速定位到bug,本篇博客介绍如何使用pycharm的代码调试功能
pycharm 的 debug
- pycharm提供了非常强大的debug功能
- 以下面代码为例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 调试:
def add(*args):
sum = 0
for item in args:
sum += item
return sum
if __name__ == '__main__':
sum = add(1,2,3,4,5,6,7,8,9,10)
print(sum)
打开调试的几种方式
- 鼠标右键选择 Debug
- 代码调试入口
if __name__ == '__main__':
处单机选择 Debug - 快捷启动方式,菜单工作区域
- ...打开调试的方式有很多,选一种即可
断点
- 含义: 断点(Breakpoint)即中断操作,只有继续手动执行才继续下一步操作
- 打断点: 点击需要加断点的代码行,如下:
左侧红点就表示此处有断点
调试模式
运行Debug(调试)模式,结果如下
- 变量区域: 可以查看变量的执行流程和变化
- 蓝色代码行: 蓝色代码行表示debug下一步要执行的操作,变量区域显示的是上一行的变量执行结果
认识功能键
- 右侧红框功能菜单,鼠标悬停后有提示各菜单的功能
- 横排红框功能菜单,是主要操作功能菜单
横排操作功能区
口诀
7进,8出,9跳
- 7进: F7(step into),在单步执行时,遇到子函数就进入并且继续单步执行,有的会跳到源代码里面去执行
- 8出: shift+F8(step out),跳出函数体,返回到调用此函数的地方
- 9跳: F9(Resume program),跳过当前断点
其他功能键
- F8(step over): 在单步执行时,程序代码会越过子函数,但子函数会执行,且不进入.(不存在子函数是,与F7作用一样)
- Alt+Shift+F7(step into my code): 在单步执行时,遇到子函数就进入并且继续单步执行,不会进入到源码中
- 设置断点
- 打开Debug模式
- F7/F8单步执行
- F9结束,跳到下一个断点
- 调试模式在代码量增多或者找其他人写的代码bug,很有用
- 本篇博客只停留在调试模式的基础,但是掌握了基础,再去解决深层次的问题,只是时间问题
喜时之言,多失信;怒时之言,多失体