python之程序调试题,python之程序调试填空

  python之程序调试题,python之程序调试填空

  Python的程序调试一、前言二、自动空闲的程序调试三、assert语句的程序调试一、前言在程序开发的过程中,不可避免的会出现一些错误,无论是语法还是逻辑。更容易发现语法错误,因为程序会直接停下来,给出错误提示。发现逻辑错误并不容易。因为程序可能一直在执行,结果却是错的。所以作为一个程序员,掌握一定的调试方法是必要的技能。

  第二,利用自动空闲调试程序。大多数集成工具都提供调试功能。比如我们一直在用的IDLE,也提供了程序调试功能。使用IDLE进行程序调试的基本步骤如下:

  (1)打开IDLE(Python Shell),在主菜单上选择Debug-》调试器菜单选项,会打开调试控制对话框(此时此对话框为空白),Python3.10.7 Shell窗口会显示“[DEBUG ON]”(表示已经处于调试状态),如图:

  (2)在Python3.10.7 Shell窗口中,选择文件--“打开”菜单项,打开要调试的文件,然后添加需要的断点。

  说明:断点的作用:设置断点后,程序在到达断点时会暂时中断,程序可以随时继续运行。

  添加断点的方法是:在要添加断点的代码行上单击鼠标右键,从弹出的快捷菜单中选择“设置断点”菜单项。添加断点的行将用黄色阴影标记,如图所示:

  注意:如果要删除添加的断点,可以选中已经添加断点的行,然后单击鼠标右键,在弹出的快捷菜单中选择“清除断点”。

  (3)添加需要的断点(添加断点的原理是:程序执行到这个位置时,如果要检查某些变量的值,就在这个位置添加断点),然后按快捷键执行程序,程序执行信息就会显示在调试控制对话框中。选中“全局”复选框以显示全局变量。此时,调试控制对话框如图所示:

  (4)在上图所示的调试工具栏中,提供了五个工具按钮。单击此处的Go按钮执行程序,直到设置第一个断点。从实例代码中的第一个断点开始。py文件需要获取用户的输入,需要先在Python3.10.7 Shell窗口中输入除数和被除数。输入后,调试控制窗口中的数据将发生如下变化:

  注意:调试工具栏中五个按钮的作用是:Go按钮用于跳转到断点;步进按钮用于输入要执行的功能;按钮上方表示单步执行;Out按钮表示跳出功能;退出按钮表示调试结束。

  再学两招:在调试过程中,如果在设置的断点处有其他函数调用,也可以点击Step按钮进入函数。当确定该功能没有问题时,可以点击Out按钮跳出该功能。或者在调试过程中已经找到问题的原因,需要修改,可以直接点击退出按钮结束调试。另外,如果调试的目的不是很明确(即没有确认问题的位置),可以直接点击Setp按钮进行单步执行,这样可以清楚的观察程序和数据变量的执行过程,方便的发现问题。

  (5)继续点击Go按钮,将执行到下一个断点。检查变量的变化,直到所有断点都被执行。调试工具栏上的按钮将不可用,如图所示:

  (6)程序调试完毕后,可以关闭调试控制窗口。此时Python 3.10.7 Shell窗口会显示“DEBUG OFF”(调试关闭)(表示调试已经结束)。

  3.用assert语句调试程序。在程序开发过程中,除了使用开发工具自带的调试工具进行调试,还可以通过代码中的print()函数检查可能有问题的变量输出,但是这种方法会产生大量的垃圾信息。所以调试完就删除比较麻烦。Python还提供了另一种使用assert语句进行调试的方法。

  Assert在中文里是断言的意思,一般用来验证某个程序在某个时刻必须满足的条件。assert语句的基本语法如下:

  断言表达式[,原因]参数描述:

  表达式:条件表达式,如果这个表达式的值为真,则什么都不做;如果为False,将引发AssertionError异常。Reason:可选参数,用来描述判断条件,以便以后更好地知道哪里出了问题。例如,在执行除法的division()函数中,使用以下代码断言调试器:

  def分部():

  1=num1=int(input(请输入被除数:)#用户输入提示并记录下来。

  Num2=int(input(请输入除数:))

  断言num2!=0,除数不能为0

  result=num1 //num2 #执行除法运算

  打印(结果)

  if __name__==__main__ :

  Division() #调用函数运行程序,输入除数0,会抛出如下图所示的AssertionError异常。

  通常,assert语句可以与异常处理语句结合使用。因此,您可以将上面的代码更改为以下代码:

  def分部():

  1=num1=int(input(请输入被除数:)#用户输入提示并记录下来。

  Num2=int(input(请输入除数:))

  断言num2!=0,除数不能为0

  result=num1 //num2 #执行除法运算

  打印(结果)

  if __name__==__main__ :

  Try: # catch异常

  Division() #调用函数

  除了AssertionError作为e: # handle AssertionError异常

  print( \ n输入不正确,e) # Output error reason assert语句仅在调试阶段有效。我们可以通过在执行Python命令时添加-O(大写)参数来关闭assert语句。例如,在命令行窗口中输入以下代码,执行“E:\program\Python\Code”目标下的Demo.py文件,即关闭Demo.py文件中的assert语句:

  e:

  cd E:\program\Python\Code

  Python -O Demo.py

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: