一、思考1、什么是debug?找毛病?查找软件故障?查找程序缺陷。2、为什么需要debug?●没有人能保证写的代码没有问题●高效发现软件异常●一名优秀的开发工程师◆20%的时间写代码◆80%的时间调试“调试不了”==》noCancode"=="lowsalary"3.debug需要具备哪些功能?●控制程序的执行◆想停就停,想执行就执行◆为所欲为●设置断点◆在指定位置停止●查看当前命名空间(程序栈)中的变量2.Python调试大法案例代码如下:创建deubg_skills_demo.py文件创建gifts.py文件1.pdb操作●系统自带的调试工具(无需安装)●将下面代码放在需要的地方debug(类似于设置断点)●当程序执行到上述代码位置时,会自动打开一个控制台终端◆“->”为接下来要执行的代码(当前未执行)●可以运行的命令终端◆list或l◆显示当前运行的代码◆默认列出11行代码●p变量名或p需要运行的表达式◆打印变量的值●step或s如果在函数处执行call,会进入函数体●nextorn如果是在函数调用处执行,不会进入函数体●enter◆重复上一条命令●b(reak)[([filename:]lineno|function)[,condition]]◆设置断点◆filename可选,如果不传,默认在当前文件设置断点●corcontinue◆继续运行,停在下一个断点●disable断点号◆disable断点●启用断点号◆启用断点●cl或清除断点号◆清除断点●显示或不显示变量◆监视或不监视某个变量◆如果变量值改变,将自动显示●h或帮助◆帮助信息●h具体命令◆具体命令帮助文档●hpdb◆pdb完整文档三、Pycharm调试操作1.打开PythonPrompt,会出现一个ipython控制台。您可以在控制台查看当前命名空间下的变量。也可以执行Python表达式2、StepOver/F8在调试工具栏中按下●,类似于pdb中的next,程序不会进入函数体3、StepInto/F7在调试工具栏中按下●,类似于pdb中的step,程序将进入函数(方法)体、系统源码、第三方模块源码4.StepOut/Shift+F8从函数体跳出5.StepIntoMyCodeStepIntoMyCode/ALT+Shift+F7按调试工具●专栏主要关注自己写的代码●从系统源码和第三方模块源码跳转到自己写的代码6.EvaluateExpression●计算当前命名空间中表达式的值7.QuickEvaluateExpression●快速计算表达式的值8.Watching●类似于pdb中的显示●可以监视一个变量或表达式IV的值。总结●作为一个代码编写者,掌握代码调试技巧是必不可少的●可以提高工作效率和代码质量●Python中有很多调试工具和技巧●本文涵盖了最常用和最实用的知识点
