调试Python程序的四种方法
程序编写完成或在编写过程中,需要对程序进行测试,根据测试发现的错误,进一步诊断,找出发生错误的原因和具体代码位置进行修改,这个过程称为程序调试。在一些情况下,可能需要查看或跟踪程序的运行状态,这种情况也属于程序调试。
在Python中,程序调试有多种方式可以使用:可以使用print函数在怀疑出错的代码位置输出调试信息,例如输出变量的内容等;也可以使用assert语句(断言语句)输出调试信息;还可以将调试信息输出到log文件,通过log文件了解程序的运行状况,定位发生错误的代码位置;还可以在代码中设置断点,跟踪程序的运行状态,定位发生错误的代码位置。
使用print函数调试程序
使用print函数调试程序,是最容易掌握,也最方便使用的一种程序调试方法。
在怀疑出错的代码位置,使用print函数输出调试信息,根据输出的调试信息来发现错误原因,或查看程序的运行状态。
案例1:查看程序的运行状态
# 定义计算X平方的函数def squre(x):x = x ** 2# 输出调试信息,了解程序运行状况print(x)return xs = [1,2,3,4,5,6]# 使用map函数计算列表s所有项的平方a = map(squre,s)print(list(a))
案例2:发现程序出现异常的原因
# 定义两数相除函数def div(a,b):# 输出a、b的值,发现发生异常的原因print("a=%d:b=%d" % (a,b))temp = a / breturn tempif __name__ == '__main__':a = int(input("请输入一个整数:"))b = int(input("请输入一个整数:"))print(div(a,b))
案例2代码使用print函数输出a和b的值,当程序发生异常时,可以查看a和b的值,找到程序发生异常的原因。在案例2中,当b为0就会发生程序异常。
案例2语句“if __name__ == '__main__'”,用于表示该模块为直接执行模块,也可以说是主模块,只有该模块为主模块时,才会执行if内的语句。
使用assert断言语句调试程序
assert语句允许开发者在程序代码插入调试性断言,assert语句用于判断一个表达式,该表达式返回布尔值,若表达式返回False,则触发AssertionError异常,程序终止。
assert语句的语法如下:
assert expression [, expression]
其中assert是Python关键字,expression是Python表达式,该表达式返回布尔值,在assert关键字后面可以有多个表达式,每个表达式用英文逗号分隔。
案例3:使用assert断言语句调试程序
# 使用assert语句断言b不为0assert b != 0
在程序执行过程中,若b=0,当程序执行到assert b != 0语句时,表达式b != 0返回False,assert语句触发AssertionError异常,程序停止执行。
下面是程序的执行过程:
请输入一个整数:10请输入一个整数:0Traceback (most recent call last):File "D:/pythoncode/test2.py", line 12, in <module>File "D:/pythoncode/test2.py", line 4, in divAssertionError>>>
出处:https://baijiahao.baidu.com/s?id=1681985627173393344&wfr=spider&for=pc
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/16337335.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2022-06-02 12:07 jack_Meng 阅读(2124) 评论(0) 编辑 收藏 举报