news 2026/5/28 15:05:36

思考与练习(第七章 异常处理与调试)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思考与练习(第七章 异常处理与调试)

一、单项选择题(本大题共 10 小题)

1、在 Python 中,以下哪种错误属于语法错误(Syntax Error)?

① print(10 / 0)

② print("Hello world

③ int("abc")

④ lst = [1, 2, 3]; print(lst[5])

2、以下哪个异常表示“尝试打开一个不存在的文件”?

① FileNotFoundError

② IOError

③ FileError

④ OSError

3、在 try-except 语句中,如果 try 块中的代码执行成功,没有发生异常,以下哪个子句会被执行?

① except

② else

③ finally

④ 以上都不会

4、关于 finally 子句的说法,以下哪项是正确的?

① finally 子句只有在发生异常时才会执行

② finally 子句只有在没有异常时才会执行

③ finally 子句无论是否发生异常都会执行

④ finally 子句必须和 else 子句一起使用

5、以下代码的输出结果是:

try: x = int("123") print("转换成功")except ValueError: print("转换失败")finally: print("执行结束")

① 转换成功 执行结束

② 转换成功

③ 转换失败 执行结束

④ 转换失败

6、在异常处理中,except Exception as e: 语句中的 e 表示什么?

① 错误类型

② 错误信息

③ 错误对象

④ 错误代码

7、以下哪个语句用于主动引发异常?

① throw

② raise

③ assert

④ trigger

8、以下代码的输出结果是:

try: result = 10 / 0except ZeroDivisionError: print("除数不能为零")except: print("其他错误")

① "除数不能为零"

② "其他错误"

③ 程序崩溃

④ 无输出

9、如果需要同时捕获多种异常类型,应该使用以下哪种语法?

① except TypeError, ValueError:

② except (TypeError, ValueError):

③ except TypeError or ValueError:

④ except TypeError & ValueError:

10、关于自定义异常类,以下说法正确的是:

① 自定义异常类必须继承自 BaseException

② 自定义异常类必须继承自 Exception

③ 自定义异常类不能有构造函数

④ 自定义异常类不能传递错误信息

二、判断题(本大题共 5 小题)

1、Python 中所有的异常都是 Exception 类的子类。( )

2、在 try-except 语句中,可以没有 except 子句,但必须有 finally 子句。( )

3、使用 except:(不指定异常类型)可以捕获所有异常,包括键盘中断和系统退出。( )

4、finally 子句中的代码即使在 try 块中使用了 return 语句也会执行。( )

5、raise 语句只能抛出 Python 内置的异常类型,不能抛出用户自定义的异常。( )

三、程序填充题(本大题共 3 小题)

1、以下程序用于安全地读取用户输入的两个整数并计算它们的商。请在下划线处补全代码。

try: a = int(input("请输入被除数:")) b = int(input("请输入除数:")) result = a / b print(f"{a} / {b} = {result}")except ________: print("错误:除数不能为零")except ValueError: print("错误:请输入有效的整数")except Exception as e: print(f"其他错误:{e}")

2、以下程序用于安全地打开并读取文件内容。请在下划线处补全代码。

filename = input("请输入文件名:")try: f = open(filename, "r", encoding="utf-8") content = f.read() print("文件内容:", content)except FileNotFoundError: print("错误:文件不存在")except UnicodeDecodeError: print("错误:文件编码不正确")finally: if 'f' in locals(): ________ print("文件已关闭")

3、以下程序定义了一个自定义异常类,用于验证年龄的合法性。请在下划线处补全代码。

class AgeError(Exception): """自定义异常:年龄错误""" def __init__(self, age, message="年龄必须在0-150之间"): self.age = age self.message = message super().__init__(self.message) def validate_age(age): if age < 0 or age > 150: ________ return True try: age = int(input("请输入年龄:")) validate_age(age) print("年龄验证通过")except AgeError as e: print(f"年龄错误:{e.message},输入的年龄是{e.age}")except ValueError: print("错误:请输入有效的数字")

四、编程题(本大题共 3 小题)

1、除法计算器

编写一个程序,要求用户输入两个数字进行除法运算。

要求:

(1)使用 try-except-else-finally 完整结构

(2)捕获除零错误(ZeroDivisionError)和数值转换错误(ValueError)

(3)如果没有错误,在 else 块中显示计算结果

(4)在 finally 块中显示"计算结束"

(5)主要变量:dividend(被除数)、divisor(除数)、result(结果)

2、素数判断器

编写一个程序,要求用户输入一个正整数,判断其是否为素数。

要求:

(1)使用异常处理验证输入是否为有效的正整数

(2)如果输入小于等于 1,使用 raise 抛出 ValueError 异常

(3)使用经典的素数判断算法(试除法)

(4)在 finally 块中显示“素数判断结束”

(5)主要变量:num(输入的数)、is_prime(是否为素数标志)

(6)算法说明:从 2 到 √n 检查是否有因子

3、成绩统计器(综合异常处理)

编写一个程序,要求用户输入多个成绩(0 ~ 100 之间的整数),统计平均分、最高分和最低分。

要求:

(1)使用异常处理验证每个输入是否为有效的 0 ~ 100 之间的整数

(2)如果输入非法,要求重新输入

(3)输入“end”表示结束输入

(4)如果没有任何有效成绩,抛出 ValueError 异常

(5)使用 while 循环处理多次输入

(6)主要变量:scores(成绩列表)、score(单个成绩输入)、average(平均分)

附:参考答案与解析

“点赞有美意,赞赏是鼓励”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 2:25:23

网页媒体资源高效提取:VideoDownloadHelper插件终极使用指南

网页媒体资源高效提取&#xff1a;VideoDownloadHelper插件终极使用指南 【免费下载链接】Chrome插件VideoDownloadHelper下载指南 本仓库提供了一个名为 **VideoDownloadHelper** 的Chrome插件资源文件下载。该插件适用于谷歌和火狐浏览器&#xff0c;能够帮助用户从网站中提取…

作者头像 李华
网站建设 2026/5/26 4:49:40

Select2性能优化实战指南:从瓶颈诊断到流畅体验

Select2性能优化实战指南&#xff1a;从瓶颈诊断到流畅体验 【免费下载链接】select2 Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results. 项目地址: https://gitcode.com/gh_mirrors/s…

作者头像 李华
网站建设 2026/5/26 5:58:16

蓝奏云桌面客户端:告别浏览器限制的终极文件管理方案

蓝奏云桌面客户端&#xff1a;告别浏览器限制的终极文件管理方案 【免费下载链接】lanzou-gui 蓝奏云 | 蓝奏云客户端 | 蓝奏网盘 GUI版本 项目地址: https://gitcode.com/gh_mirrors/la/lanzou-gui 还在为浏览器上传下载文件的繁琐操作而烦恼吗&#xff1f;蓝奏云桌面客…

作者头像 李华
网站建设 2026/5/28 7:22:42

BACnet4J:解决楼宇自动化通信难题的Java技术方案

BACnet4J&#xff1a;解决楼宇自动化通信难题的Java技术方案 【免费下载链接】BACnet4J 项目地址: https://gitcode.com/gh_mirrors/bac/BACnet4J 面对现代楼宇自动化系统日益复杂的通信需求&#xff0c;传统协议实现往往面临跨平台兼容性差、开发效率低、维护成本高等…

作者头像 李华
网站建设 2026/5/28 10:43:27

WingetUI离线部署完整教程:企业级无网络环境一键安装方案

还在为隔离网络环境中的软件部署而烦恼吗&#xff1f;WingetUI作为Windows包管理器的图形化界面&#xff0c;能够统一管理Winget、Scoop、Chocolatey等多种工具&#xff0c;但在无网络连接的情况下&#xff0c;如何快速部署这款实用工具&#xff1f;本指南将为你提供完整的离线…

作者头像 李华
网站建设 2026/5/25 11:40:08

DataEase 可视化引擎选型策略:ECharts 与 AntV 的架构融合之道

DataEase 可视化引擎选型策略&#xff1a;ECharts 与 AntV 的架构融合之道 【免费下载链接】dataease DataEase: 是一个开源的数据可视化分析工具&#xff0c;支持多种数据源以及丰富的图表类型。适合数据分析师和数据科学家快速创建数据可视化报表。 项目地址: https://gitc…

作者头像 李华