使用excel统计学生成绩让相同学生分数名次相同-英雄云拓展知识分享
139
2023-11-13
【摘要】 本书摘自《Python 编程与应用实践》一书中第8章,第3节,由冯伟森,王建,杨宁主编。
8.3 raise 语 句 和 with 语 句
(1)raise 语句。
Python 使用raise 语句抛出一个指定的异常。raise 语句的语法如下:
raise(2)with 语句。
with 语句的目的在于从异常处理的流程中把 try,except 和 finally 关键字和资源分配 释放相关代码统统去掉,简化代码量,使得程序更加简洁。with 语句的语法如下;
with context_expr [as var]:
with 块
Python中有各种各样的异常类型,如 ZeroDivisionError (除数不能为0)、NameError (命名错误)、SyntaxError(Python 解释器语法错误)、IndexError (请求的索引超出序列
范围)、IOError: (输入/输出错误)等,这些都是比较常见的异常,尽管标准异常集包含 的内容已经相当广泛,用户也可以创建自己的异常。
例8.5 用户自定义异常。
class lengthException(Exception): # 自定义异常必须继承 Exception 类 def __init__(self,length):
self.length=length
try:
x=input(" 请输入一个字符串:")
if(len(x)<4):
raise lengthException("字符串长度小于4")
except lengthException as le: #as 把一个类型当作一个对象
print(" 发生异常",le.length)
else:
print(" 没有发生异常")
这个例子中,我们自定义了一个异常lengthException, 继承于 Exception, 当用户输 入字符串长度小于4的时候,我们使用raise 抛出异常,但此时 raise 只负责抛出异常并没 有处理异常, except 代码块才负责处理异常。需要注意的是,系统自带的异常只要触发会 自动抛出,比如 NameError, 但用户自定义的异常需要用户自己决定什么时候抛出,自 定义异常需要继承 Exception 。就像我们这个例子一样,我们控制了它必须在用户输入字 符串长度满足条件时才能抛出异常提示信息。掌握好 Python 异常处理机制将有效提高程 序的健壮性、鲁棒性,请读者多查阅相关资料,上机实践。
习 题
1. 以下哪个因素会在程序执行时引发异常?注意这里我们问的并不是异常的原因。 (a) 用户
(b) 解释器
(c) 程序
(d) 以上所有
(e) 只有 (b) 和 (c)
(f) 只有 (a) 和 (c)
2. 关键字 try-except 和 try-finally 有什么不同?
3. 简单叙述一下什么是异常和错误。异常处理分为哪几个阶段?
4. 下面两段 Python 伪代码 (a) 和 (b) 有什么区别?考虑语句 A 和 B 的上下文 环境。
(a)try:
statement _A
except…:
else:
statement
(b)try:
statement statement
except…:
B
A
B
5. 输入一个数,打印输出这个数的平方,当用户输入不是一个整数的时候使用异常 处理提醒用户输入整数。
6. 将用户输入的数字作为索引从字符串alp 中返回一个字符,当用户输入非整数字 符时,except NameError异常被捕获到,提示用户输入类型错误,当用户输入数字不在0 到25 之间时,异常被 except 捕获,程序打印其他错误信息。
7. 编写程序,用户输入一个三位以上的整数,输出其百位上的数字,例如用户输入 1234,则程序输出12,如果用户输入的不是数字,则抛出异常输出you must input an integer, 如果输入的数字少于3位,则提示 you must input an integer of more than 3 digits。
8. 异常捕获,输入为两个数值,两数相加除以两数相减,出现异常请捕获,如没有 异常请输出具体值。
输入:1010
输出: Error
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~