使用excel统计学生成绩让相同学生分数名次相同-英雄云拓展知识分享
130
2023-11-13
【摘要】 本书摘自《Python 编程与应用实践》一书中第8章,第1节,由冯伟森,王建,杨宁主编。
第8章 异常处理
8.1 什么是异常
通常,当编写好的代码出现语法或逻辑上的错误时,解释器无法解释或者编译器无法 编译,在程序执行前,错误必须要进行纠正,否则程序是无法运行的。语法错误可能是我 们的代码写得不规范导致的,这个比较好解决,但是逻辑错误就不太好办了,不完整或不 合法的输入可能会导致程序出现逻辑错误,例如,在利用程序进行数学运算时,我们把0 当作除数了,这种就是一个逻辑错误。执行代码时,只要 Python 检测到一个错误,解释 器就会提示当前程序已经无法继续执行下去,这种情况就是代码出现了异常。
8.2 检测和处理异常
异常是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶 段:首先是异常发生,然后是检测并处理阶段。
(1)异常发生。
当程序出现一个错误时,异常会被解释器打印出来,这时候异常还没有被处理,称为 未处理异常。 一般情况下,未处理异常会被默认处理,解释器自动输出一些调试信息并终 止运行。
(2)检测并处理阶段。
在代码里面编写处理异常的语句,可以通过代码明确处理异常,程序不会终止运行, 这样做的好处是增强程序的容错性。
在 Python 中,通常使用 try….except 语句处理异常。 一个 try 语句可能包含多个 except 子句,分别用来处理不同的特定的异常。最多只有一个分支会被执行。处理程序将 只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
Python 的 try 语句有两种形式: 一种是 try/except/else 语句,当程序发生异常时处 理异常;另一种是 try/finally 语句,不管程序是否发生异常都要将最后的代码执行完。
try….except 语句的语法形式如下:
try:
try 代码块#被检测的语句except Exception[,reason]:
except 代码块#处理异常的语句
try 代码块是被检测的、可能发生异常的语句, except 代码块是用来处理异常的。
例8.1 try…except 语句举例。
try:
x=15
print(x/0)
except ZeroDivisionError:
print("除数不能为0")
输出结果:除数不能为0
例8.2 try…except…else 语句举例。
list=[1,2,3,4]
while(True):
x=int(input("请输入索引值:"))
try:
print(" 第{}元素是".format(x)+str(list[x]))
except IndexError:
print(" 列表索引越界")
else:
break
输出显示结果:
请输入索引值:5
列表索引越界
请输入索引值:2
第2元素是3
从上面的代码可以看出,我们分别输入5和2两个数,输入5的时候发生了索引越界 的异常,except 后面的语句会立即帮我们处理异常,我们再次输入2的时候,如果程序没 有异常发生,此时就会直接执行else 后的语句,不再获取用户的输入。IndexError 也是 Python 中常见的异常。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~