【Python】Pycharm 调试Debug必知

部署运行你感兴趣的模型镜像

一、调试的作用:

  1. 看数据类型
  2. 不用print看数据内容
  3. 看数据变化

二、调试的关键功能:在这里插入图片描述

控制台: 看输出

显示执行点 Alt+F10: 跳到当前执行行(该行还未执行)
步过F8: 即执行当前行,并跳到下一行,不会进入函数(会进入循环)
步入F7: 执行当前行,并进入能进入的函数或循环里(print不可进入)。可一定程度代替步过使用。
单步执行我的代码: 行当前行,并进入自己写的函数或循环里(不关注引用的函数时可用)。可一定程度代替步过使用。
步出Shift+F8: 和步出对应,若已经是最外层,无法步出,则跳到下一个断点
恢复程序F9: 跳到下一个断点
运行到光标处: 直接运行到光标所在行
在这里插入图片描述
老版本:
在这里插入图片描述

查看断点: 查看项目所有断点(同时看多个文件的断点)
忽略断点: 让项目所有断点都失效(同时控制多个文件的断点)
在这里插入图片描述
对表达式求值: 用于查看变量,更改变量值
在这里插入图片描述

新建监视: 可用于查看很深层级的变量属性,避免一层层展开,如name.job.salary
在这里插入图片描述
条件断点: 控制变量符合某个条件时停止
在这里插入图片描述
多线程调试: 选择“线程”后,可通过选择不同线程一个个线程单独调试
在这里插入图片描述
在这里插入图片描述

参考

bili-pycharm debug
Debug知识点解析!–老版本
多线程调试

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在使用 PyCharm 调试 Python 代码时,导出调试过程中变量的中间结果可以通过以下几种方式实现: ### 1. 使用调试器中的 "Variables" 面板查看变量值 在调试过程中,PyCharm调试窗口会显示当前作用域内的所有变量及其值。开发者可以通过调试器逐步执行代码,观察变量的变化情况。虽然这种方式不能直接导出变量值,但可以手动记录或截图保存关键变量的状态[^2]。 ### 2. 使用 "Evaluate Expression" 功能导出变量内容 在调试过程中,右键点击变量或表达式,选择 "Evaluate Expression",可以查看变量的当前值。此功能还支持执行任意表达式,可用于临时存储变量值到文件中。例如,可以使用以下代码片段将变量写入文件: ```python with open('debug_output.txt', 'a') as f: f.write(f"Variable value: {variable_name}\n") ``` 这样可以在调试过程中将变量值记录到文件中,便于后续分析[^4]。 ### 3. 使用 "Watches" 监视特定变量 在调试窗口中,可以将需要关注的变量添加到 "Watches" 面板中。这样即使变量超出当前作用域,也可以持续跟踪其值的变化。通过这种方式可以更清晰地掌握变量在整个调试过程中的变化轨迹。 ### 4. 使用日志记录代替调试器输出 除了使用调试器直接查看变量值外,还可以通过 `logging` 模块将变量的中间结果记录到日志文件中。这种方式适用于需要长时间运行或需要记录大量调试信息的场景: ```python import logging logging.basicConfig(filename='debug.log', level=logging.INFO) def some_function(): variable = 42 logging.info(f"Current value of variable: {variable}") ``` 该方法可以在不打断程序执行流程的情况下获取变量的中间结果[^1]。 ### 5. 使用 `pickle` 或 `json` 序列化变量 如果需要将变量的中间状态保存下来以便后续分析,可以使用 `pickle` 或 `json` 模块将其序列化并保存到文件中: ```python import pickle with open('variable_state.pkl', 'wb') as f: pickle.dump(variable_name, f) ``` 这种方式特别适用于需要复现特定调试状态或进行离线分析的场景[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值