Pycharm Debug调试(纯干货)_小麦粒的博客-程序员信息网

技术标签: python  c++  debug  java  编程语言  

32e9e39cfe2c05815356db6043538ac1.gif

内容目录(原文见公众号python宝或www.xmmup.com

一、打断点二、代码调试三、界面小图标介绍四、控制台介绍

# 数字转换为大写人民币
import sys
import io


sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
numberList = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
integralUnit = ['元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟']
fractionUnit = ['角', '分']
def solveF(f, res):
    # print(res)
    if int(f) == 0:
        res.append("整")
    else:
        for i in range(len(f)):
            if int(f[i]) != 0:
                res.append(numberList[int(f[i])])
                res.append(fractionUnit[int(i)])
    return res
while True:
    try:
        a = input()
        if '.' in a:
            a = a.split('.')
        else:
            a = (a + '.00').split('.')
        y = a[0]
        f = a[1]
        res = ['人民币']
        y = y[::-1]  # 反过来
        for i in range(len(y))[::-1]:  # 从i=len(y)-1开始,一直到0
            if int(y[i]) == 0:
                res.append(numberList[0])
            else:
                res.append(numberList[int(y[i])])
                res.append(integralUnit[i])
        res = solveF(f, res)


        res = ''.join(res)
        while ('零零' in res):
            res = res.replace('零零', '零')
        res = res.replace('壹拾', '拾')
        res = res.replace('人民币零', '人民币')
        print(res)
    except:
        break

一、打断点

        一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。
        注意断点会将对应的代码行标记为红色,取消断点的操作也很简单,在同样位置再次单击即可。 如图所示,打了三个断点

badb52239e2bbc58632c803edba7f9a3.png

        当你将鼠标指针悬停在断点上方时,Pycharm会显示断点的关键信息,行号以及脚本属性,如果你希望更改该断点的属性,右击断点:

bd05828db47bb30c9c03a3f77f4154d6.png

二、代码调试

第一种:通过鼠标右击代码处,可以来debug程序

c60999bbeb19b6208e54e0cda25dfd6d.png

第二种:可以通过点击pycharm右上角这个小虫子的图标来进行debug 

6d71870e5d4ee4532a118324d32e2852.png

执行上述操作后,Pycharm会执行以下动作:

(1)PyCharm开始运行,并在断点处暂停

(2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。

(3)Debug tool window窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。

dbf529e5ae05e171a3940c84f241b5c7.png

三、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) 

直接跳到下一个断点,然后接着来看变量查看器

ccaf893949b7bc5c10f2ed54ab672618.png

        在调试过程中观察变量的状态。我们需要对其设置一个查看器。在Watches窗口中,单击加号,输入期望查看的变量名称,例如这里输入delay,然后回车。我试了三个变量,这里我们看到这三个变量目前都是没被定义的,我们可以在控制台里给它定义,也可以通过执行下一步,利用代码中的赋值来定义。

ae203a4a81bba3ac5021ab486ed1de53.png

可以通过点击这个眼睛图标,将这两个窗口连在一起查看

950634bcc45664b410b9eded948049cc.png

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

四、控制台窗口

     如果要是忘记中文意思的话,没有关系,鼠标指到按钮处,悬浮一会儿,会有英文提示的。

1dde99540eb1e232a6300c9bd0ce7135.png

0b72c782abd6e9b8649bff6c9e3406cd.png

About Me:小麦粒

● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用

● 作者博客地址:https://blog.csdn.net/u010986753

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 个人微信号:pythonbao 联系我加微信群

●个人 QQ:87605025

● QQ交流群pythonbao :483766429

● 公众号:python宝 或 DB宝

● 提供OCP、OCM和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

8c736ec7ce5de30439d2331cad9afdbb.gif

欢迎赞赏哦!有您的支持,小麦粒一定会越来越好!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010986753/article/details/122677952

智能推荐

SVG相关知识与应用_跑快点的博客-程序员信息网

SVG,即Scalable Vector Graphics 可伸缩矢量图形,这种图像格式在前端中已经使用的非常广泛了。首先要解释下什么是矢量图像,什么是位图图像?1、矢量图像:SVG是W3C 推出的一种开放标准的文本式矢量图形描述语言,他是基于XML的、专门为网络而设计的图像格式,SVG是一种采用XML来描述二维图形的语言,所以它可以直接打开xml文件来修改和编辑。2、位图图像:位图图像的存...

PHP图片加水印,然后将加水印的图片上传到七牛云_临沂码农王老七的博客-程序员信息网

今天项目有这么一个需求,简单实现了一下,当然用起来是没有任何问题的,现在把实现代码分享给小伙伴们public function uploadImgToQiniu($picture_id){ $waterImg = './upload/picture/water/**.png';//这个是水印图片,直接放到服务器即可 $img = './upload/picture/'.$pictureInfo['path'];//原图 $waterImg = $thi

stm32 带通滤波器_带通滤波 - 基于STM32芯片和TFT-LCD的便携式心电图仪设计_weixin_39959569的博客-程序员信息网

相关推荐3月10日,纽约州州长安德鲁-库默(Andrew Cuomo)曾在上月宣布,纽约大都市圈的公共交通系...发表于 2018-04-16 08:50•88次阅读 LCD驱动我们只需要写硬件这一块的代码就可以了,下面有三个函数内核已经帮我们写好了,我们只需要调用就...发表于 2018-04-16 08:43•12次阅读 ...

ARM的片上总线规范AMBA (AHB, APB)_何以解忧唯有写!的博客-程序员信息网_amba总线规范

AMBA(Advanced Micro-Controller Bus Architecture)是由ARM Limited公司推出的On-Chip Bus片上总线规范,一开始AMBA 1.0只有ASB和APB,为了节省面积,这时候的总线协定都是采用3态的总线。后来的AMBA 2.0版本,新增了AHB总线,共定义了3组总线:高性能总线(AdvancedHigh Performance Bus,AHB)、系统总线(AdvancedSystem Bus,ASB)和外设总线(Advanced Periphe

随便推点

计算机phd学校怎么选,科学网—关系一生的选择:申请北美phd应该如何比较学校、导师优劣(一) - 钱辰的博文..._吃三盆糖的猫的博客-程序员信息网

博主是一位在美国高校即将毕业的博士生,专业是计算机科学经过多年混迹于学术圈,对于读博的学校、导师选择颇有心得,想写一篇短文来总结一下个人以为,作为一个新时代的大学生,对于自己的职业应该略有规划。大致来说,到北美读博的人在心中的规划分为两类:A: 如果你意向博士毕业以后从事学术工作(高校教授、研究所研究员等)博主对于选择phd offer的优先程度排序为:A1, 导师和研究小组的历史成绩读博士,找到...

python缺失值插补_时间序列数据如何插补缺失值?_weixin_39894233的博客-程序员信息网

在多元时间序列中,数据缺失的情况十分普遍。最近我在做这方面的literature review,在这里回顾总结一下 。时间序列缺失值处理方法主要分为三大类:第一类是直接删除法,该方法可能会舍弃数据中的一些重要信息;第二类是基于统计学的填充方法,如均值填充,中值填充,常用值填充,但这类方法忽略了数据的时序信息;第三类是基于机器学习的填充方法,常见的方法有基于KNN(K-Nearest Neighbo...

成功解决TypeError: a bytes-like object is required, not ‘str‘_张亚楠·的博客-程序员信息网

出现问题:在文件写操作时出现TypeError: a bytes-like object is required, not ‘str’意思是函数write需要的参数类型是字节对象不是字符串解决办法:把str转换成bytes类型bytes(data,‘utf-8’) 或者 str.encode(data,‘utf-8’)第二个参数是编码,根据需求选择。...

Centos下apache启动时httpd: apr_sockaddr_info_get() failed for 报错_明夕何夕帅的博客-程序员信息网

今天安装Apache httpd web服务器时,从官方网站上http://www.apache.org/dyn/closer.cgi下载httpd,然后在centos下解压,安装过程分为三部分:      (1)./configure      (2)make      (3)make install (需要root权限)默认安装在/usr/sbin/下,执行ap

作业五:总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令_浅( ⊙ o白色的博客-程序员信息网

echo:等待标准输入,后面可以接字符串,也支持正则表达式[email protected]:~# man echoSYNOPSIS echo [SHORT-OPTION]... [STRING]... echo LONG-OPTION实例:[email protected]:~# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/

接口对接 Newtonsoft.Json_xiexuzhao的博客-程序员信息网

zygfengyuwuzu对接 Newtonsoft.Jsonhttps://blog.csdn.net/weixin_34244102/article/details/86031017技巧1 java 定义了一个operator c#怎么使用 解决方案:给C#序列化类字段定义别名技巧2 Newtonsoft.Json 中 json数据中的 null如何转换成 ""?个人只看到一...

推荐文章

热门文章

相关标签