Pycharm Debug调试(纯干货)

Pycharm Debug调试(纯干货)使用 Debug 调试代码 1 打断点一个断点标记了一个代码行 当 Pycharm 运行到该行代码时会将程序暂时挂起 注意断点会将对应的代码行标记为红色 取消断点的操作也很简单 在同样位置再次单击即可 如图所示 打了两个断点当你将鼠标指针悬停在断点上方时 Pycharm 会显示断点的关键信息 行号以及脚本属性 如果你希望更改该断点的属性 右击断点 可以尝试对断点属性进行个性化更改 然后观察图标

使用Debug调试代码
1.打断点
一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。
注意断点会将对应的代码行标记为红色,取消断点的操作也很简单,在同样位置再次单击即可。
如图所示,打了两个断点
在这里插入图片描述
当你将鼠标指针悬停在断点上方时,Pycharm会显示断点的关键信息,行号以及脚本属性,如果你希望更改该断点的属性,右击断点:
在这里插入图片描述
可以尝试对断点属性进行个性化更改,然后观察图标的变化。
2.代码调试
我们有几种方法来debug程序
第一种:通过鼠标右击代码处,可以来debug程序
在这里插入图片描述
第二种:可以通过点击这个小虫子的图标来进行debug
在这里插入图片描述
接下来会Pycharm会执行以下操作:
(1)PyCharm开始运行,并在断点处暂停
(2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。
(3)Debug tool window窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。
在这里介绍一下debug窗口几个图标分别代表的意思
在这里插入图片描述
这里一排七个坐标的意思分别是
1.show execution point (F10) 显示当前所有断点
2.step over(F8) 单步调试。
若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行
3.step into(F7) 单步调试。
若函数A内存在子函数a时,会进入子函数a内执行单步调试。
4.step into my code(Alt + Shift +F7) 执行下一行但忽略libraries(导入库的语句)
5.force step into(Alt + Shift +F7) 执行下一行忽略lib和构造对象等
6.step out(Shift+F8)当目前执行在子函数a中时,选择该调试操作可以直接跳出子函数a,而不用继续执行子函数a中的剩余代码。并返回上一层函数。
7.run to cursor(Alt +F9) 直接跳到下一个断点
然后接着来看变量查看器
在调试过程中观察变量的状态。我们需要对其设置一个查看器。在Watches窗口中,单击加号,输入期望查看的变量名称,例如这里输入delay,然后回车。我试了三个变量,这里我们看到这三个变量目前都是没被定义的,我们可以在控制台里给它定义,也可以通过执行下一步,利用代码中的赋值来定义。
*注意:*这个眼镜模样的图案是watch窗口(我当时可是找了半天…,网上的都是一些老版本的介绍的watch窗口,=.=)
在这里插入图片描述
可以通过点击这个图标
在这里插入图片描述
将这两个窗口连在一起查看
在这里插入图片描述
OK,接下来我们来看控制台窗口
Console窗口的工作模式:
  为什么需要用到Console窗口呢?当我们需要查看程序给出的错误信息,或者进行一些额外的临时运算时,就需要在这个窗口里面进行。
单击左侧工具栏中的命令符按钮,显示Python的命令提示符(在这里,问题又来了,新版的pycharm的那个图标又换了,而且还隐藏的很深,这是怕别人找到了吗。。。)
经过探索,发现在这=.=
在这里插入图片描述
点击这个,即可显示python的命令提示符
在这里插入图片描述
在这里做个小测试,这里可以直接编译python代码,执行一些python命令。
在这里插入图片描述
































































































介绍完这些,开始进入正式调试代码,我用的小例子的代码如下:

import threading import time def get_thread_name(): t = threading.current_thread() return t.name def print_time(delay): """Define a function for the thread.""" thread_name=get_thread_name() count = 0 while count < 8: time.sleep(delay) count += 1 print("%s:%s" % (thread_name, time.ctime(time.time()))) t1 = threading.Thread(target=print_time, args=(1,)) t2 = threading.Thread(target=print_time, args=(2,)) t1.start() t2.start() t1.join() t2.join() 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173109.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午9:26
下一篇 2026年3月27日 上午9:26


相关推荐

  • 硬编码问题

    硬编码问题有的时候可以利用读取配置文件来读取值 这样要修改值就直接修改配置文件就可以了 就不用修改其他的文件了 减少了麻烦 也更加简洁和规范 举例 env properties CUSTOMER FROM TYPE 002CUSTOMER INDUSTRY TYPE 001CUSTOMER LEVEL TYPE 006 注意 需要在 mvc 的配置文件中 在 idea 下 为 dispatche

    2026年3月26日
    1
  • Java ListNode 链表

    JavaListNode链表基本结构基本初始化添加构造方法初始化范型写法创建与遍历链表插入节点替换节点删除节点补充说明基本结构链表是一种数据结构,由数据和指针构成,JavaListNode链表是一种由Java自定义实现的链表结构。基本初始化classListNode{//类名:Java类就是一种自定义的数据结构intval;//数据:节点数据ListNodenext;//对象:引用下一个节点对象。在Jav

    2022年4月8日
    254
  • C语言-字符型数据与ASCII码表

    C语言-字符型数据与ASCII码表字符型数据与 ASCII 码

    2026年2月4日
    3
  • C++ 中缀表达式转后缀表达式

    C++ 中缀表达式转后缀表达式一 思路 和中缀表达式的计算类似 只不过不用计算 把表达式输出即可 nbsp nbsp nbsp nbsp nbsp 1 用字符数组存储整行输入的中缀表达式 nbsp nbsp nbsp nbsp nbsp 2 接着从字符数组的 0 位置开始判断字符 如果是数字 那就要判断后面是否是数字 如果是就不断扫描组成一个整数 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 暂不考虑负数和小数 最终组成一个整数 然后输出这个数 因为不用计算 所以直接输出即可 nbsp nbsp nbsp nbsp nbsp 3 如果是左括号 直接进符号

    2026年3月17日
    1
  • 谓词表示法表示猴子摘香蕉_猴子妈妈有14个香蕉

    谓词表示法表示猴子摘香蕉_猴子妈妈有14个香蕉案例:我们要实现以下步骤:这个案例共有以下几种情况,猴子香蕉箱子在同一处,猴子香蕉在同一处,香蕉箱子在同一出,还有三者均不在同一处,但不论是哪种情况,我们需要清楚一点就算是香蕉和猴子在同一位置,猴子也无法直接获得香蕉,因此我们第一步必须需要先找到箱子,然后再去搬着箱子移动到香蕉处。本案例中有以下四个谓词逻辑: Run(monkey,box)代表猴子去搬箱子 Getbox(monkey,box)代表猴子得到了箱子 Run(monkey,banana)代表了.

    2026年4月14日
    4
  • 光纤交换机划分zone图解

    光纤交换机划分zone图解 HP光纤存储交换机 用户:admin出厂密码:password出厂IP:10.77.77.77 用串口连上交换机,help查出可用的命令IpaddrShow 命令查看IP地址,然后用IE浏览器输入http://10.77.77.77登陆交换机。   划分ZONE点击左下角图标  输入用户admin密码password,进入

    2022年5月21日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号