1.Python使用被称为异特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。
异常是使用try-except代码块处理,try-except代码块让Python执行指定操作,同时告诉Python发生异常时怎么做。
2.处理ZeroDivisionError异常
下面来看一个Python简单异常:
显然Python无法让你这样做,你将看到一个traceback:
上述traceback中,指出的错误ZeroDivisionError是一个异常对象。Python无法按照你的要求做时,就会创建这种对象。在这种情况下Python将停止运行程序,并指出引发哪种异常,而我们可以根据这些信息对程序进行修改。
3.使用try-except代码块
当你认为可能发生错误时,可以编写一个try-except代码块来处理可能引发的异常,即发生异常后该怎么做(编写一段发生异常时如何处理的代码);例如:
结果:
4.使用异常避免崩溃
使用一个练习来对异常进行处理,避免程序遇到异常时工作还没有做完;
例如:
print("输入两个数,得到第一个数除第二个数的商")
print('输入字母"e"退出!!!');
#代码循环
while True:
num1=input("请输入第一个数:");
if num1=='e' :
print("已退出谢谢!!!")
break;
num2=input("请输入第二个数:");
try:
num1=int(num1)
num2=int(num2)
save=num1/num2
print("结果:"+str(save))
except ZeroDivisionError :
print("输入不和法,已退出!!!");
break;
使用情况:
输入两个数,得到第一个数除第二个数的商
输入字母"e"退出!!!
请输入第一个数:20
请输入第二个数:4
结果:5.0
请输入第一个数:7
请输入第二个数:5
结果:1.4
请输入第一个数:52456
请输入第二个数:478
结果:109.74058577405857
请输入第一个数:e
已退出谢谢!!!
或者:
输入两个数,得到第一个数除第二个数的商
输入字母"e"退出!!!
请输入第一个数:25
请输入第二个数:4
结果:6.25
请输入第一个数:12
请输入第二个数:3
结果:4.0
请输入第一个数:5
请输入第二个数:0
输入不和法,已退出!!!
5.使用else语句来处理成功执行的代码,即可能发生异常的地方却成功执行:
print("输入两个数,得到第一个数除第二个数的商")
print('输入字母"e"退出!!!');
#代码循环,假设输入不为空
while True:
num1=input("请输入第一个数:");
if num1=='e' :
print("已退出谢谢!!!")
break;
num2=input("请输入第二个数:");
try:
num1=int(num1)
num2=int(num2)
save=num1/num2
except ZeroDivisionError :
print("输入不和法,已退出!!!");
break;
else:
print("结果:"+str(save));
输出结果:
输入两个数,得到第一个数除第二个数的商
输入字母"e"退出!!!
请输入第一个数:20
请输入第二个数:15
结果:1.3333333333333333
请输入第一个数:14
请输入第二个数:7
结果:2.0
请输入第一个数:32
请输入第二个数:0
输入不和法,已退出!!!
或者:
输入两个数,得到第一个数除第二个数的商
输入字母"e"退出!!!
请输入第一个数:54
请输入第二个数:16
结果:3.375
请输入第一个数:9
请输入第二个数:3
结果:3.0
请输入第一个数:e
已退出谢谢!!!