内容正文:
《Python语言程序设计基础》(电子科技大学出版社)
第10章 Python异常处理
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1.以下不属于语法错误的是( )
A. print("hello"
B. if语句后缺少冒号
C. 变量未定义就使用
D. 括号不匹配
【答案】C
【解析】变量未定义使用触发NameError,属于异常,因此选C。
2.Python语法分析器检测到语法错误时,会提示的关键信息不包括( )
A. 错误行号
B. 错误类型
C. 自动修复方案
D. 错误位置提示
【答案】C
【解析】语法错误仅提示行号和错误类型,Python无法自动提供修复方案,因此选C。
3.用赋值符“=”代替比较符“==”进行条件判断时触发的异常是( )
A. SyntaxError
B. TypeError
C. ValueError
D. KeyError
【答案】A
【解析】SyntaxError是非法的语法,赋值符用于条件判断违反语法规则,因此选A。
4.调用字符串index()方法查找不存在的子字符串时触发的异常是( )
A. IndexError
B. ValueError
C. KeyError
D. AttributeError
【答案】B
【解析】ValueError的触发场景是子字符串未找到,对应index()方法查找不存在字符的情况,因此选B。
5.以下不属于Python内置异常类的是( )
A. TypeError
B. IndentationError
C. IndexError
D. MyException
【答案】D
【解析】MyException是用户自定义异常类,不属于内置异常,因此选D。
6、以下关于异常类继承关系的描述,不正确的是( )
A. BaseException是所有内置异常的基类
B. 用户定义异常继承自Exception
C. Exception继承自BaseException
D. 所有异常类直接继承BaseException
【答案】D
【解析】用户定义的类并不直接继承BaseException,而是继承Exception,因此选D。
7、当try块中未发生异常时,会执行哪个子句的代码( )
A. except
B. else
C. finally
D. 无额外执行
【答案】B
【解析】如果<代码块>执行时未发生异常,则执行else后面的语句块,因此选B。
8、多个except子句的匹配规则是( )
A. 随机匹配一个
B. 仅执行最后一个except块
C. 所有匹配的except块都执行
D. 按顺序匹配,匹配成功即执行对应块
【答案】D
【解析】当异常发生时,程序根据异常类型在except语句分支中依次进行匹配,如果匹配成功,则执行此except后面的处理语句块,执行完成后退出整个异常处理语句,因此选D。
9、以下关于异常处理的描述,正确的是( )
A. try 块中发生异常后,剩余代码仍会执行
B. 一个try块只能有一个except子句
C. else子句必须在所有except子句之后
D. finally子句不能单独使用
【答案】C
【解析】A错误,异常后 try 块剩余代码跳过;B错误,可多个except子句);D错误,finally需配合try;C正确,else需在所有except之后,因此选C。
10、以下关于except子句的描述,不正确的是( )
A. 可有一个或多个
B. 可指定具体异常类型
C. 能处理try块外发生的异常
D. 可不指定异常类型
【答案】C
【解析】异常处理子句只处理对应的try <块>中发生的异常,因此选C。
11、以下场景中,不适合使用异常处理的是( )
A. 打开可能不存在的文件
B. 接收用户输入的数字
C. 除法运算
D. 语法错误
【答案】D
【解析】语法错误在运行前被检测到,无法通过异常处理捕获,因此选D。
12、以下关于else和finally子句的描述,不正确的是( )
A. finally子句仅在发生异常时执行
B. finally子句可选,最多一个
C. else子句在无异常时执行
D. else子句可选,最多一个
【答案】A
【解析】finally子句不管是否发生异常都执行,因此选A。
13、Python中用于主动抛出异常的关键字是( )
A. throw
B. raise
C. except
D. try
【答案】B
【解析】Python可以通过raise显式地抛出异常,raise是主动抛出异常的专用关键字,因此选B。
14、以下关于raise语句的使用形式,不正确的是( )
A. raise 异常类型
B. raise
C. raise 异常实例
D. raise "错误信息"
【答案】D
【解析】raise后需跟异常类型或实例,字符串不合法,因此选D。
15、以下不属于主动抛出异常的作用的是( )
A. 检测到非法输入时强制报错
B. 改变程序执行流程
C. 替代try-except处理异常
D. 自定义异常触发条件
【答案】C
【解析】raise是抛出异常,需配合try-except处理,不能替代,因此选C。
16、以下关于raise语句的描述,不正确的是( )
A. 执行后后续代码不再执行
B. 可在try块内或块外使用
C. 仅能抛出内置异常
D. 抛出的异常必须被except捕获,否则程序终止
【答案】C
【解析】raise可抛出自定义异常,需继承Exception,因此选C。
17、以下代码中,正确使用断言的是( )
A. assert 3>2 "3 不大于 2"
B. assert 5<3, "5 小于 3"
C. assert (2==2)
D. assert "hello", "不是字符串"
【答案】C
【解析】A缺少逗号分隔参数,B条件不成立但语法正确,D条件为true但用途不当;C符合断言的简化语法,使用正确,因此选C。
18、断言语句的语法组成不包括( )
A. assert关键字
B. condition条件表达式
C. 可选的expression参数
D. except子句
【答案】D
【解析】断言语法为assert condition[, expression],不含except子句,因此选D。
19、以下关于断言的描述,不正确的是( )
A. condition为false时抛出AssertionError
B. expression参数可选,可省略
C. 适合处理运行时的用户输入错误
D. 用于开发时快速定位程序中的非法情况
【答案】C
【解析】断言不适合处理运行时异常,用户输入错误需用异常处理,因此选C。
20、以下关于断言语句参数的描述,不正确的是( )
A. condition是必须的,不能省略
B. expression用于描述异常信息
C. expression必须是字符串类型
D. 省略expression时,异常无额外描述信息
【答案】C
【解析】expression可是任意类型(如数字、字符串),并非必须是字符串,因此选C。
2、 判断题(本题共10小题,每题2分,共20分)
1、prin("hello")触发的NameError属于语法错误。( )
【答案】错误。该语句语法正确,但“prin”未定义,属于运行时的异常,而非语法错误,故错误。
2、Python语法分析器能自动修复语法错误。( )
【答案】错误。这类错误需要编程者自己不断提高编辑和编程水平,以减少发生的频率,Python系统无法帮我们解决这类问题,故错误。
3、用“+”拼接“name='小明'”和“age=20”会触发TypeError。( )
【答案】正确。字符串与数字拼接会触发TypeError,故正确。
4、条件判断语句“if name='小红':”会触发SyntaxError。( )
【答案】正确。赋值符“=”用于条件判断是非法语法,文档明确触发SyntaxError,故正确。
5、不指定异常类型的except子句可以捕获所有类型的异常,推荐优先使用。( )
【答案】错误。不指定异常类型的except子句不推荐,因为无法精准处理异常,不利于问题排查,故错误。
6、finally子句无论程序是否发生异常,都会执行。( )
【答案】正确。finally子句的执行特性是无论程序是否发生异常都会执行,故正确。
7、主动抛出的异常必须通过except块捕获处理,否则程序会终止。( )
【答案】正确。任何未被捕获的异常都会导致程序终止,主动抛出的异常也不例外,故正确。
8、断言语句的关键字是assert。( )
【答案】正确。断言assert语句,关键字为assert,故正确。
9、自定义异常类的语法格式必须包含class关键字和继承Exception类。( )
【答案】正确。自定义异常类的语法格式是“class 类名(Exception): 类体”,故正确。
10、with语句仅能用于文件操作,不能用于其他资源管理。( )
【答案】错误。with还可用于线程中锁的自动获取和释放等场景,故错误。
3、 填空题(本题共10小题,每题2分,共20分)
1、Python中的两种错误类型是语法错误和_______。
【答案】异常
2、语法错误又称______,是由于未正确掌握语法或输入代码出错导致的。
【答案】解析错误
3、所有Python内置异常的基类是_______。
【答案】BaseException
4、索引超出范围导致的异常是_______。
【答案】IndexError
5、若try块中未发生异常,会执行_______子句。
【答案】else
6、异常处理中,except子句仅处理________块中发生的异常,无法处理该块外的异常。
【答案】try
7、Python中主动抛出异常的关键字是______。
【答案】raise
8、当断言的condition为false时,会抛出________类型的异常。
【答案】AssertionError
9、用户自定义异常类必须继承_______类。
【答案】Exception
10、_______语句中,enter()方法在语句体执行前运行,exit()方法在语句体执行后运行,负责释放资源和处理异常。
【答案】with
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《Python语言程序设计基础》(电子科技大学出版社)
第10章 Python异常处理
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1.以下不属于语法错误的是( )
A. print("hello"
B. if语句后缺少冒号
C. 变量未定义就使用
D. 括号不匹配
2.Python语法分析器检测到语法错误时,会提示的关键信息不包括( )
A. 错误行号
B. 错误类型
C. 自动修复方案
D. 错误位置提示
3.用赋值符“=”代替比较符“==”进行条件判断时触发的异常是( )
A. SyntaxError
B. TypeError
C. ValueError
D. KeyError
4.调用字符串index()方法查找不存在的子字符串时触发的异常是( )
A. IndexError
B. ValueError
C. KeyError
D. AttributeError
5.以下不属于Python内置异常类的是( )
A. TypeError
B. IndentationError
C. IndexError
D. MyException
6、以下关于异常类继承关系的描述,不正确的是( )
A. BaseException是所有内置异常的基类
B. 用户定义异常继承自Exception
C. Exception继承自BaseException
D. 所有异常类直接继承BaseException
7、当try块中未发生异常时,会执行哪个子句的代码( )
A. except
B. else
C. finally
D. 无额外执行
8、多个except子句的匹配规则是( )
A. 随机匹配一个
B. 仅执行最后一个except块
C. 所有匹配的except块都执行
D. 按顺序匹配,匹配成功即执行对应块
9、以下关于异常处理的描述,正确的是( )
A. try 块中发生异常后,剩余代码仍会执行
B. 一个try块只能有一个except子句
C. else子句必须在所有except子句之后
D. finally子句不能单独使用
10、以下关于except子句的描述,不正确的是( )
A. 可有一个或多个
B. 可指定具体异常类型
C. 能处理try块外发生的异常
D. 可不指定异常类型
11、以下场景中,不适合使用异常处理的是( )
A. 打开可能不存在的文件
B. 接收用户输入的数字
C. 除法运算
D. 语法错误
12、以下关于else和finally子句的描述,不正确的是( )
A. finally子句仅在发生异常时执行
B. finally子句可选,最多一个
C. else子句在无异常时执行
D. else子句可选,最多一个
13、Python中用于主动抛出异常的关键字是( )
A. throw
B. raise
C. except
D. try
14、以下关于raise语句的使用形式,不正确的是( )
A. raise 异常类型
B. raise
C. raise 异常实例
D. raise "错误信息"
15、以下不属于主动抛出异常的作用的是( )
A. 检测到非法输入时强制报错
B. 改变程序执行流程
C. 替代try-except处理异常
D. 自定义异常触发条件
16、以下关于raise语句的描述,不正确的是( )
A. 执行后后续代码不再执行
B. 可在try块内或块外使用
C. 仅能抛出内置异常
D. 抛出的异常必须被except捕获,否则程序终止
17、以下代码中,正确使用断言的是( )
A. assert 3>2 "3 不大于 2"
B. assert 5<3, "5 小于 3"
C. assert (2==2)
D. assert "hello", "不是字符串"
18、断言语句的语法组成不包括( )
A. assert关键字
B. condition条件表达式
C. 可选的expression参数
D. except子句
19、以下关于断言的描述,不正确的是( )
A. condition为false时抛出AssertionError
B. expression参数可选,可省略
C. 适合处理运行时的用户输入错误
D. 用于开发时快速定位程序中的非法情况
20、以下关于断言语句参数的描述,不正确的是( )
A. condition是必须的,不能省略
B. expression用于描述异常信息
C. expression必须是字符串类型
D. 省略expression时,异常无额外描述信息
2、 判断题(本题共10小题,每题2分,共20分)
1、prin("hello")触发的NameError属于语法错误。( )
2、Python语法分析器能自动修复语法错误。( )
3、用“+”拼接“name='小明'”和“age=20”会触发TypeError。( )
4、条件判断语句“if name='小红':”会触发SyntaxError。( )
5、不指定异常类型的except子句可以捕获所有类型的异常,推荐优先使用。( )
6、finally子句无论程序是否发生异常,都会执行。( )
7、主动抛出的异常必须通过except块捕获处理,否则程序会终止。( )
8、断言语句的关键字是assert。( )
9、自定义异常类的语法格式必须包含class关键字和继承Exception类。( )
10、with语句仅能用于文件操作,不能用于其他资源管理。( )
3、 填空题(本题共10小题,每题2分,共20分)
1、Python中的两种错误类型是语法错误和_______。
2、语法错误又称______,是由于未正确掌握语法或输入代码出错导致的。
3、所有Python内置异常的基类是_______。
4、索引超出范围导致的异常是_______。
5、若try块中未发生异常,会执行_______子句。
6、异常处理中,except子句仅处理________块中发生的异常,无法处理该块外的异常。
7、Python中主动抛出异常的关键字是______。
8、当断言的condition为false时,会抛出________类型的异常。
9、用户自定义异常类必须继承_______类。
10、_______语句中,enter()方法在语句体执行前运行,exit()方法在语句体执行后运行,负责释放资源和处理异常。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$