投稿  收藏 
使用PyCharm调试程序

【问题描述】

现有一个输出质数的程序,但是一个质数都不能输出,请使用PyCharm的调试工具定位和修改错误。

【题前思考】

根据问题描述,填写表11-2-3。

表11-2-3 问题分析

使用PyCharm调试程序

【解题思路】

我们仍然在判断质数的关键语句设置断点,让程序暂停下来以查看变量的值是否按预计变化。如果想查看某些情况下的变量值,设置条件断点是非常好的选择。PyCharm的调试工具是图形化的,通过鼠标单击就可以设置断点,断点处有专门的面板用于查看变量的值,条件断点的设置在对话框中操作。

【程序代码】

使用PyCharm调试程序

【调试分析】

①:程序第8行即语句“if n%i!=0:res.append(n)”是判定一个数是不是质数的语句,我们可以在此处设置断点,查看各数在此处的值是什么,以此来推测问题。PyCharm中设置断点的方法是在PyCharm窗口代码编辑区左侧行号的右侧空白区域单击,如果显示出红色的圆点就表示断点设置成功,如图11-2-5所示。

使用PyCharm调试程序

图11-2-5 在PyCharm中设置断点

②:已知7是一个质数,但是程序并没有在n为7的时候把它加入列表res中,所以为了加快调试进度,为断点设置一个条件,使它在n==7的时候起作用。在PyCharm中设置条件断点的方法是在断点上右击,将会弹出断点(breakpoins)对话框,在condition(条件)编辑框中输入条件,即可完成条件断点的设置,如图11-2-6所示。条件断点设置成功之后,断点标志旁边会显示一个红色的问号(?)来表示这是一个条件断点。

使用PyCharm调试程序

图11-2-6 在PyCharm中设置条件断点

③:在工具栏中单击调试工具按钮使用PyCharm调试程序或按快捷键Shift+F9即可启动调试任务,这时程序以单步模式执行。当遇到断点时,程序暂停执行,此时会高亮显示断点位置,同时会在代码编辑区显示各变量的实时值,也会在窗口底部的Variables(变量)面板中显示各变量的值,如图11-2-7所示。

使用PyCharm调试程序

图11-2-7 在PyCharm中查看断点处变量的值

④:从变量值来看n和i的值都是7,n%i!=0是不成立的,所以判断7不是质数。为什么退出循环之后n和i的值会变得一样呢?我们再分析程序会发现,如果n是质数的话,小于n的所有数i都是不能整除n的,这样一来i最终会增加到n,最终导致循环条件i<n不成立而退出循环。而在n不是质数的时候,i会在小于n的值上满足条件n%i==0进而退出循环。因此,退出循环之后,如果n是质数必须有n==i,反之n<i。于是程序中的问题确定,if后的条件应该从n%i!=0改为n==i。如果不能确定错误,还需要继续执行程序查检变量的值,甚至重新设置断点,直到找出错误。

【技术全貌】

为了方便调试,PyCharm提供了各种执行方式,我们可以根据需要选择。图11-2-8展示了调试面板中的各图标的功能,表11-2-4展示了各执行方式的具体特点,如果希望更深入地了解可以扫描二维码查看官网信息。

使用PyCharm调试程序

图11-2-8 在PyCharm中的调试工具按钮

表11-2-4 PyCharm调试执行方式

使用PyCharm调试程序

关 键 词

PyCharm 调试程序

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢