+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-04(15)

2020-05(25)

2020-06(43)

2020-07(27)

2020-08(36)

【PyCharm中文教程 06】超全 PyCharm 代码调试教程

发布于2021-03-10 18:53     阅读(1610)     评论(0)     点赞(16)     收藏(4)


0

1

2

3

4

5

6

7

1. 调试的过程#

调试可以说是每个开发人员都必备一项技能,在日常开发和排查 bug 都非常有用。

调试的过程分为三步:

  1. 第一步:在你想要调试的地方,打上断点

  2. 第二步:使用调试模式来运行这个 python 程序

  3. 第三步:使用各种手段开始代码调试

首先第一步和第二步,我用下面这张图表示

点击上图中的小蜘蛛,开启调试模式后,在 PyCharm 下方会弹出一个选项卡。

这个选项卡的按键非常多,包括

  1. 变量查看窗口
  2. 调试控制窗口
  3. 线程控制窗口
  4. 程序控制窗口

在变量查看窗口,你可以查看当前程序进行到该断点处,所有的普通变量和特殊变量,你每往下执行一行代码,这些变量都有可能跟着改变。

如果你的程序是多线程的,你可以通过线程控制窗口的下拉框来切换线程。

以上两个窗口,都相对比较简单,我一笔带过,下面主要重点讲下调试控制按钮和程序控制按钮。

在调试控制窗口,共有 8 个按钮,他们的作用分别是什么呢?

  1. Show Execution Point:无论你的代码编辑 窗口的光标在何处,只要点下该按钮,都会自动跳转到程序运行的地方。
  2. Step Over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和step into效果一样的。简单的说就是,程序代码越过子函数,但子函数会执行,且不进入。
  3. Step Into:在单步执行时,遇到子函数就进入并且继续单步执行,有的会跳到源代码里面去执行。
  4. Step Into My Code:在单步执行时,遇到子函数就进入并且继续单步执行,不会进入到源码中。
  5. Step Out:假如进入了一个函数体中,你看了两行代码,不想看了,跳出当前函数体内,返回到调用此函数的地方,即使用此功能即可。
  6. Run To Cursor:运行到光标处,省得每次都要打一个断点。
  7. Evaluate Expression:计算表达式,在里面可以自己执行一些代码。

以上七个功能,就是最常用的功能,一般操作步骤就是,设置好断点,debug运行,然后 F8 单步调试,遇到想进入的函数 F7 进去,想出来在 shift + F8,跳过不想看的地方,直接设置下一个断点,然后 F9 过去。

看这张图就行了(下面第6点有误,应该是运行到光标处,而不是下一断点处)

在程序控制窗口,共有 6 个按钮,他们的作用分别又是什么呢?同时看下面这张图就行了。

2. 调试相关的快捷键#

  • ⇧ + F9:调试当前文件
  • ⌥ + ⇧ + F9:弹出菜单,让你选择调试哪一个文件
  • F8:单步执行,不进入函数
  • F7:单步执行,进入函数
  • ⌥ + ⇧ +F7:单步执行,只进入自己写的函数
  • ⇧ + F8:跳出函数体
  • F9:运行到下一断点
  • ⌥ + F9:运行到光标处
  • ⇧ + ⌘ + F8:查看所有设置的断点
  • ⌘ + F8:切换断点(有断点则取消断点,没有则加上断点)
  • ⌥ + F5:重新以调试模式运行
  • ⌥ + F8 计算表达式(可以更改变量值使其生效)

文章最后给大家介绍两个我自己写的在线文档:

第一个文档PyCharm 中文指南 1.0 文档

整理了 100 个 PyCharm 的使用技巧,为了让新手能够直接上手,我花了很多的时间录制了上百张 GIF 动图,有兴趣的前往在线文档阅读。

第二个文档PyCharm 黑魔法指南 1.0 文档

系统收录各种 Python 冷门知识,Python Shell 的多样玩法,令人疯狂的 Python 炫技操作,Python 的超详细进阶知识解读,非常实用的 Python 开发技巧等。

原文链接:https://www.cnblogs.com/wongbingming/p/14479583.html

0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 博客

作者:comeonbady

链接: https://www.pythonheidong.com/blog/article/881392/190b6056a014cfb73536/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

16 0
收藏该文
已收藏

评论内容:(最多支持255个字符)