python 进阶语法-异常捕获预处理 5 道练习题 | Python技能树征题

Posted 梦想橡皮擦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 进阶语法-异常捕获预处理 5 道练习题 | Python技能树征题相关的知识,希望对你有一定的参考价值。

本篇博客主要为 https://bbs.csdn.net/skill/python 频道练习题模块补充题目,暂定每天提供 5 or 6 道测试题,后面可能会更多哦~。

本篇博客对【进阶语法】→ 【异常捕获预处理】 进行出题。

以下题目,默认将正确答案,放置在选项 A 位置

知识点:python 进阶语法-异常捕获预处理

第 1 题:

题目难度:2 星
题干(问题描述):
在 Python 的 sys 模块中,exc_info() 方法也可以输出异常,假设运行目录不存在 a.txt 文件,下述代码能正确抛出字符串错误信息的是?

选项 A:

import sys

try:
    with open('a.txt',"r") as f:
        f.read()
except:
    ex_type, ex_val, ex_stack = sys.exc_info()
    print(ex_val)

选项 B:

import sys

try:
    with open('a.txt',"r") as f:
        f.read()
except:
    ex_type, ex_val = sys.exc_info()
    print(ex_val)

选项 C:

import sys

try:
    with open('a.txt',"r") as f:
        f.read()
except:
    ex = sys.exc_info()
    print(ex)

选项 D:

import sys

try:
    with open('a.txt',"r") as f:
        f.read()
except Exception,e:
    ex = sys.exc_info()
    print(ex)

正确答案:A

第 2 题:

题目难度:1 星
以下代码有几处错误?

my_dict = {
    "name":"梦想橡皮擦",
    "age":18
}
while key in my_dict
print(key)

选项 A:
3
选项 B:
2
选项 C:
1
选项 D:
0

正确答案:A

第 3 题:

题目难度:2 星
题干(问题描述):
定义一个异常类 OverNumberError ,当用户输入数字大于 100 时,抛出异常内容 “输入数字过大!”

选项 A:

class OverNumberError(Exception):
    def __init__(self):
        super(Exception, self).__init__()

    def __str__(self):
        return "输入数字过大!"


try:
    user_input = input("输入一个数字:")
    if int(user_input) > 100:
        raise OverNumberError()
except OverNumberError as e:
    print(e)

选项 B:

class OverNumberError():
    def __init__(self):
        pass

    def __str__(self):
        return "输入数字过大!"


try:
    user_input = input("输入一个数字:")
    if int(user_input) > 100:
        raise OverNumberError()
except OverNumberError as e:
    print(e)

选项 C:

class OverNumberError(Exception):
    def __init__(self):
        super(Exception, self).__init__()

    def __str__(self):
        raise "输入数字过大!"


try:
    user_input = input("输入一个数字:")
    if int(user_input) > 100:
        raise OverNumberError()
except OverNumberError as e:
    print(e)

选项 D:

class OverNumberError(Exception):
    def __init__(self):
        super(Exception, self).__init__()

    def __str__(self):
        raise "输入数字过大!"


try:
    user_input = input("输入一个数字:")
    if int(user_input) > 100:
        raise OverNumberError()
except Exception as e:
    print(e)

正确答案:A

第 4 题:

题目难度:1 星
题干(问题描述):
请问下述代码输出什么内容?

try:
    num = 1/0
except:
    print("except 语句")
else:
    print("else 语句")
finally:
    print("finally 语句")

选项 A:
except 语句
finally 语句
选项 B:
finally 语句
选项 C:
else 语句
finally 语句
选项 D:
else 语句

正确答案:A

第 5 题:

题目难度:2 星
题干(问题描述):
请问下述代码运行的结果是?

def child_func():
    try:
        a = 10 / 0
        print("child_func 函数")
    except ZeroDivisionError as e:
        pass


def parent_func():
    try:
        c = child_func()
        print("parent_func 函数")
    except Exception as e:
        print("异常信息:", e)


if __name__ == '__main__':
    parent_func()

选项 A:
parent_func 函数

选项 B:
异常信息: division by zero
parent_func 函数

选项 C:
异常信息: division by zero

选项 D:
child_func 函数
parent_func 函数

正确答案:A

试题仓库地址如下:

https://codechina.csdn.net/hihell/question

以上是关于python 进阶语法-异常捕获预处理 5 道练习题 | Python技能树征题的主要内容,如果未能解决你的问题,请参考以下文章

5道练习题,测试你掌握 python 进阶语法-lambda函数了吗? | Python技能树征题

Python异常处理和with语句

Python---进阶---捕获异常

老王Python-进阶篇4-异常处理1.3(周末习题)

python异常处理

Python异常处理