文章目录
前言
本文介绍常见的Bug类型以及解决方法。
10.1Bug的类型及解决方法
Bug类型:粗心大意 、知识点不熟悉
、思路不清晰以及被动掉坑(代码无错误,由于用户输入错误或例外导致程序崩溃)。
解决方法:注释部分代码,利用print函数调试,进行断点调试,采用python自带的处理机制
10.2 try-except处理机制
1. 自上而下单个处理机制
try:
a=int(input("请输入第一个整数:"))
b=int(input("请输入第二个整数:"))
print('结果为',a/b)
except ValueError:#排除数字类型错误
print('对不起,您输入的不是整数类型')
print('程序结束')
except ZeroDivisionError:#排出0不能作除数的错误
print('对不起,0不能作除数')
print('程序结束')
输出:
请输入第一个整数: j
对不起,您输入的不是整数类型
程序结束
2. 排除所有错误的处理机制
try:
a=int(input("请输入第一个整数:"))
b=int(input("请输入第二个整数:"))
print('结果为',a/b)
except :#排除数字类型错误
print('输入有误')
print('程序结束')
输出:
请输入第一个整数:a
输入有误
程序结束
10.3 try-except-else处理机制
try:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
except BaseException as e :#排除所有错误
print('输入有误')
print('程序结束')
else:
print('结果为', a / b)
输出:
请输入第一个整数:q
输入有误
程序结束
10.4 try-except-else-finally处理机制
try:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
except BaseException as e:#排除所有错误
print('输入有误')
else:
print('结果为', a / b)
finally:
print('however,程序结束')
输出:
请输入第一个整数:12
请输入第二个整数:fg
输入有误
however,程序结束
10.5 Python中常见的Bug
ZeroDivisionError--除数为0
indexError--序号中无此索引
keyError--字典中中无此索键值
NameError--未申明对象
SyntaxError--语法错误
ValueError--传入无效值
traceback模块打印异常信息
import traceback
try:
print('_____________________________')
print(1/0)
except:
traceback.print_exc
输出:_____________________________