大家好,欢迎来到IT知识分享网。
Debug调试,是对于学习编程人员来说是一项重要的技能。只有当你学会 debug 了以后,才可以正确的知道程序的走向流程是如何的,DEBUG是排除程序故障的意思。debug 则是通过工具来对代码进行调试,进而一步步找出程序中出现 bug 的位置,也就是程序中具体错误代码的位置。
Pycharm中的debug模式
首先,还是用示例说话,我们先写一段简短的代码,来帮助我们完成今天要讲的内容。
初学者可能没见过 for 循环中的下划线‘_ ’,在 Python 中是占位符的意思,因为只是单纯的循环两次而已,并不用到它的循环结果,所有用占位符占位,最终显然可得result 会输出 6 。
在 pycharm 中,如何开启 debug 调试,一共有4种进入的方法,如下:
方法一:
方法二:
方法三:(以选中当前文件也可直接按Shift + F9)
方法四:
单纯的进入 debug 模式,你会发现,与正常的run去运行程序没有差异。差异就是pycharm的控制台部分,从run跑到了debug显示。
接下来要讲的,才是debug中的重中之重,即断点调试!
debug 的断点调试
断点调试,英文叫breakpoint,简单点讲,断点调试其实就是在程序自动运行的过程中,在代码某一处打上了断点,当程序跑到你设置的断点位置处,则会中断下来,此时你可以看到之前运行过的所有程序变量。
来继续刚才的演示,pycharm 中如何设置断点。
点击前:
点击后:
点击代码左边空白处设置断点,皮一下,比如给每行代码都设置上断点:
设置完断点后,开启 debug 调试模式运行下,看到结果:
我们先来从控制台每个按钮讲起:
如果要是忘记中文意思的话,没有关系,鼠标指到按钮处,悬浮一会儿,会有英文提示的,如果是中文版的Pycharm会有中文的提示。
继续再来说横排按钮:
其中,横排最重要,经常用到的按钮,来解释一下,自己鼠标悬浮去看英文或中文即可:
步过 step over (F8快捷键):在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。 在不存在子函数的情况下是和step into效果一样的。简单的说就是,程序代码越过子函数,但子函数会执行,且不进入。
步入 step into (F7快捷键):在单步执行时,遇到子函数就进入并且继续单步执行,会进入调用的函数内部,有的会跳到源代码里面去执行。
步入我的代码 step into my code (Alt+Shift+F7快捷键):在单步执行时,遇到子函数就进入并且继续单步执行,不会进入到源码中。
步出 step out (Shift+F8快捷键):假如进入了一个函数体中,你看了两行代码,不想看了,跳出当前函数体内,返回到调用此函数的地方,即使用此功能即可。
恢复程序 Resume program (F9快捷键):继续恢复程序,直接运行到下一断点处。F9为重启debug、从此断点(或起点)执行到下个断点。
以上5个功能,就是最常用的功能,★一般操作步骤就是,设置好断点,debug运行,然后用F8 单步调试,遇到想进入的函数用F7 进去,进去函数后,可以按F8单步执行,也可以按F7(可能会进入源代码)单步执行,还可以按Alt+Shift+F8(不会进入源代码)单步执行,想出来在用shift + F8(跳出函数体),想跳过不想看的地方,直接设置下一个断点,然后用F9跳过去,跳到下一个断点,若没有下一个断点,则直接跑完程序。
示例演示
上面的基础概念明白了以后,直接用图片示例演示下:
- 设置初步断点
- F7 进入函数
- F8 单步调试,往下执行代码
继续 F8 单步调试,往下执行代码:
继续 F8 单步调,试往下执行代码:
继续 F8 单步调试,试往下执行代码:
- 看够了循环,想直接看最终 result 加完的结果,就在结果处打断点,直接F9跳到下一个断点
以上就是断点调试的全过程。
学完后是不是顿时明白了断点调试的重要性,使用断点可以快速帮助我们理解程序中的各处逻辑!
结语
看到这里,基本的调试,,已经可以上手使用了!但是要拓展的点还有很多,比如pycharm为什么在工程性的程序中颇受欢迎,因为pycharm的功能实在是太强大了。
Pycharm还有一些拓展功能,大家可以去慕课网上搜下IntelliJ IDEA神器使用技巧 ,老师讲的非常详细,涉及到许多技巧,idea和pycharm是一家公司出的,所以使用上的技巧也是一样的,可以融会贯通。
慕课网课程具体地址(免费课程):https://www.imooc.com/learn/924
就算没有debug,如果借助 Python 中的 print() 函数依然可以达到想要的结果,最笨的方法不就是一步步的 print 打印出你想要的结果吗!然而笨方法往往使人印象深刻呢!总而言之,学会调试很重要!
总结:Shift+F9可进入调试
F7 步入(step into):会进入函数,遇到想进入调试的函数可以按F7,单步执行,一步步过,有可能进入源代码。
F8 步过 (单步step over):不会进入函数,把函数当成一步,可以先按F7进入函数,在按F8在
函数内一步步过。
Alt+Shift+F7步入我的代码(step into mycode):会进入函数,单步执行一步步过,但不会进
入源代码。可以理解为F8和F7的综合,没遇到函数和F8一样,遇到函数会自动进入函数内部,和F8时
按F7类似。
Shift+F8步出(step out):比如已经按F7步入一个函数体中了,在函数体内按F8一步步过,但
想直接跳出函数体可以按Shift+F8。
F9恢复程序(resume program):恢复程序,继续执行,直接跳到下一个断点,若没有下一个断
点了,那就直接跑完程序。
前面5个比较经常使用,除此之外还有:
Ctrl+F5 :在debug模式下时是重新debug运行此文件的意思。在程序在没有运行的时候,
按Ctrl +F5可以起到运行程序的作用,此时相当于按快捷键Shift + F10的作用。
Ctrl+F2 :停止当前文件的调试,停止当前的debug模式,关闭运行的当前程序。
Ctrl+Shift+F8 :查看所有设置的断点。
启用断点:让所有的断点都失效,设置的断点有红色变成白色。
Alt+F8 :计算机表达式,pycharm的高级用法。
Layout settings :恢复控制台布局。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22143.html