Python程序设计教程 习题及答案 习题11-习题解答_第1页
Python程序设计教程 习题及答案 习题11-习题解答_第2页
Python程序设计教程 习题及答案 习题11-习题解答_第3页
Python程序设计教程 习题及答案 习题11-习题解答_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题11一、选择题1.下列关于“错误(Error)”和“异常(Exception)”的说法正确的是()。A.错误与异常没有区别B.异常通常可以被程序处理,而错误一般无法恢复C.异常是指语法错误D.错误是指运行中产生的小问题2.当需要捕获多个异常类型时,应将多个异常放在()。A.一个except中的集合里,如except{ValueError,TypeError}B.多个except分支中C.一个except中用“and”连接D.一个try中嵌套多个try3.若需要让程序无论是否发生异常都执行某段代码,应使用()。A.try-except B.try-except-else C.try-finally D.raise4.用于获取异常详细信息(如错误提示文本)的写法正确的是:A.exceptExceptionasmsg: B.exceptmsg:C.tryasmsg: D.raisemsg5.下列关于异常传播机制的说法正确的是()。A.异常只会在当前函数内部查找except B.异常会沿着调用栈逐层向外传播C.异常不会离开当前语句块 D.捕获异常后仍继续向上传播6.以下语句用于主动抛出异常的是()。A.throw B.raise C.except D.error二、编程题1.编写程序,让用户输入一个整数,使用try-except捕获非整数输入的异常,并提示“请输入整数!”。2.编写函数safe_div(a,b),使用try-except捕获除零异常,并返回“除数不能为0”。3.编写程序,捕获用户输入列表索引非法(IndexError)的情况,并输出提示信息。4.编写函数,实现:接收一个列表,若列表中有非数字元素则主动使用raiseValueError抛出异常。5.定义一个自定义异常类PasswordError,在用户输入密码过短(少于6位)时抛出该异常。6.综合练习:编写一个简单计算器,支持+、-、*、/。要求对以下情况进行异常处理:输入格式错误、不支持的运算符、除零错误,并给出友好的错误提示。一、选择题答案+解析答案:B解析:语法错误属于错误,程序无法运行;异常是运行时问题,可通过try-except捕获处理。答案:B解析:捕获多个异常可写多个独立except分支,或在一个except中用元组包裹异常类型,不能用集合、and。答案:C解析:finally块无论是否触发异常,一定会执行;else是无异常时执行。答案:A解析:标准写法except异常类型as变量:,变量用于接收异常描述信息。答案:B解析:异常未被捕获时,会沿着函数调用栈逐层向外传播;一旦被捕获,停止传播。答案:B解析:Python使用raise主动抛出异常,无throw关键字。二、编程题(Python代码)1.捕获非整数输入异常try:num=int(input("请输入一个整数:"))print(f"你输入的整数是:{num}")exceptValueError:print("请输入整数!")2.安全除法,捕获除零异常defsafe_div(a,b):try:returna/bexceptZeroDivisionError:return"除数不能为0"#测试print(safe_div(10,2))print(safe_div(8,0))3.捕获列表索引越界异常lst=[10,20,30,40]try:idx=int(input("请输入列表索引:"))print("对应元素:",lst[idx])exceptIndexError:print("索引非法,超出列表范围!")exceptValueError:print("请输入数字格式的索引!")4.列表含非数字元素则主动抛异常defcheck_num_list(lst):foriteminlst:#判断是否为数字ifnotisinstance(item,(int,float)):raiseValueError("列表中存在非数字元素")print("列表全部为数字元素")#测试try:check_num_list([1,2.5,3])check_num_list([1,"a",3])exceptValueErrorase:print(e)5.自定义异常:密码长度不足抛PasswordError#定义自定义异常类classPasswordError(Exception):passtry:pwd=input("请输入密码:")iflen(pwd)<6:raisePasswordError("密码长度不能少于6位!")print("密码格式合法")exceptPasswordErrorase:print(e)6.简易计算器(综合异常处理)defcalculator():try:num1=float(input("请输入第一个数字:"))op=input("请输入运算符(+、-、*、/):")num2=float(input("请输入第二个数字:"))ifop=="+":res=num1+num2elifop=="-":res=num1-num2elifop=="*":res=num1*num2elifop=="/":res=num1/num2else:#运算符非法主动抛异常raiseException("不支持该运算符!")print(f"计算结果:{res}")exceptValueError:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论