首页 > 编程语言 >浙大版PTA python程序设计 第七章题目解析

浙大版PTA python程序设计 第七章题目解析

时间:2024-06-14 10:29:44浏览次数:31  
标签:文件 函数 python except 浙大 PTA print 异常 ValueError

一、判断题

1. 以"w"模式打开的文件无法进行读操作。
   - 正确。以 "w" 模式(写入模式)打开文件时,只允许操作,不能进行操作。如果尝试读操作会引发错误。

2. Pandas库是用于图像处理的库。
   - 错误。Pandas库主要用于数据处理和分析,不是用于图像处理的。图像处理通常使用Pillow或OpenCV等库。

3. read函数返回的是列表。
   - 错误。`read`函数读取文件的全部内容,并以字符串形式返回,而不是列表。

4. readlines函数返回的是列表。
   - 正确。`readlines`函数读取文件的所有行,并以列表形式返回,每行作为列表中的一个元素。

5. DataFrame是Pandas模块的一种数据类型。
   - 正确。`DataFrame`是Pandas库中用于表示二维数据表的主要数据结构。

6. Json数据格式只能用于Javascript语言。
   - 错误。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,不仅限于JavaScript语言,广泛应用于多种编程语言中。

7. close函数用于文件关闭。
   - 正确。`close`函数用于关闭文件对象,释放与文件相关的资源

8. Plotly模块可以画柱状图。
   - 正确。Plotly模块功能强大,可以用于绘制多种图表,包括柱状图。

9. sys.stdin表示标准输入。
   - 正确。`sys.stdin`是Python中表示标准输入流的对象,通常用于从控制台读取输入

10. 第三方模块要先安装才能使用。
    - 正确。第三方模块通常不包含在Python的标准库中,需要通过`pip`或其他包管理工具先安装才能使用。

11. 

    import plotly.graph_objects as go

    fig = go.Figure(data=[go.Table(header=dict(values=['A Scores', 'B Scores']),
                                   cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))
                          ])     
                                             
    fig.show()

 上面程序的输出是下图。

捕获.JPG


       - 正确。这段代码使用Plotly库绘制了一个表格,表格头是 'A Scores' 和 'B Scores',对应的值是两个列表。输出确实是一个表格。

代码分析:

  • 导入模块

    • import plotly.graph_objects as go: 导入Plotly中的graph_objects模块并命名为go
  • 创建Figure对象

    • fig = go.Figure(...): 创建一个Figure对象,表示一个可视化图表。
  • 添加数据

    • data=[go.Table(...)]: 添加一个Table(表格)对象到Figure中。
    • header=dict(values=['A Scores', 'B Scores']): 定义表格的头部,包含两列,列标题分别是 'A Scores' 和 'B Scores'。
    • cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]): 定义表格的单元格内容。第一个列表 [100, 90, 80, 90] 是 'A Scores' 列的分数,第二个列表 [95, 85, 75, 95] 是 'B Scores' 列的分数。
  • 显示图表

    • fig.show(): 显示创建的图表。

12. 表达式 "3/0" 会引发“ValueError”异常。
    - 错误。表达式 `3/0` 会引发 `ZeroDivisionError` 异常,而不是 `ValueError`。

13. 带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。
    - 正确。在异常处理结构中,`else`子句只有在没有发生异常时才会执行

14. 在异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。
    - 正确`finally`子句中的代码无论是否发生异常,总是会执行,常用于清理资源。

二、单选题

1.下面程序的输出是什么?

try:
    x=float("abc123")
    print("The conversion is completed")
except IOError:
    print("This code caused an IOError")
except ValueError:
    print("This code caused an ValueError")
except:
    print("An error happened")

A.The conversion is completed

B.This code caused an IOError

C.An error happened

D.This code caused an ValueError

代码分析:

try:  # 开始一个尝试块,用于尝试执行可能引发错误的代码
    x=float("abc123")  # 尝试将字符串 "abc123" 转换为浮点数,这会引发 ValueError,因为 "abc123" 不是一个有效的数字
    print("The conversion is completed")  # 如果转换成功,执行该行代码
except IOError:  # 开始一个异常处理块,用于捕捉 IOError,这种错误通常与输入/输出操作有关
    print("This code caused an IOError")  # 如果发生了 IOError,执行该行代码
except ValueError:  # 开始另一个异常处理块,用于捕捉 ValueError,这种错误通常发生在某些操作或函数接收到不合适的值
    print("This code caused an ValueError")  # 因为尝试转换一个非数字字符串abc123为浮点数,这行代码块将被执行
except:  # 这是一个通用异常处理块,它会捕捉所有类型的错误
    print("An error happened")  # 如果有任何类型的错误发生,这行代码会执行

这段Python代码展示了异常处理的基本结构,并且Python中的异常处理是按照从上到下的顺序进行的。
在执行这段代码时,因为 "abc123" 不能被转换为浮点数,所以会发生 `ValueError`,因此 `except ValueError:` 块会被触发,执行打印 "This code caused an ValueError",即选项D。

2.下面程序输入是1时,输出是什么?

def func(a):
    if a==0:
        raise ValueError
    elif a==1:
        raise ZeroDivisionError
    
i=int(input())
try:
    func(i)
    print("ok")
except Exception as e:
    print(type(e))

A.ok

B.<class 'ZeroDivisionError'>

C<class 'ValueError'>

D.以上都不是

代码分析:这段代码演示了如何使用异常处理机制捕获并处理不同类型的异常。

def func(a):  # 定义一个名为 func 的函数,参数为 a
    if a == 0:  # 判断 a 是否等于 0
        raise ValueError  # 如果 a 等于 0,抛出 ValueError 异常
    elif a == 1:  # 判断 a 是否等于 1
        raise ZeroDivisionError  # 如果 a 等于 1,抛出 ZeroDivisionError 异常

i = int(input())  # 从标准输入读取一个整数并赋值给变量 i
try:  # 尝试执行以下代码块
    func(i)  # 调用 func 函数,传入参数 i
    print("ok")  # 如果 func 没有抛出异常,打印 "ok"
except Exception as e:  # 捕获所有继承自 Exception 的异常,并将异常实例赋值给变量 e
    print(type(e))  # 打印异常的类型

由于输入是1,代码运行过程如下

i = int(input())  # 输入1,i 的值为1

try:
    func(i)  # 调用 func(1),进入 func 函数
    # 进入 func 函数
    # a == 1,因此抛出 ZeroDivisionError 异常
except Exception as e:
    print(type(e))  # 捕获到 ZeroDivisionError,打印 <class 'ZeroDivisionError'>

所以输出<class 'ZeroDivisionError'>,即选项B

三、填空题

1.Python内置函数______ 用来打开文件。

open 

  • open函数用法:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • 参数:
    • file:要打开的文件的名称或路径。
    • mode:文件打开模式,如只读 ('r')、写入 ('w')、追加 ('a')、二进制模式 ('b') 等。
    • bufferingencodingerrorsnewline 等参数用于控制文件的读取和写入方式。
  • 返回值:文件对象,可以对其进行读写操作。
  • 例如

    标签:文件,函数,python,except,浙大,PTA,print,异常,ValueError
    From: https://blog.csdn.net/like_cs_810/article/details/139665375

相关文章

  • python利用蒙版进行抠图,背景透明和前景透明
    深度学习中利用黑白蒙版进行抠图importcv2importnumpyasnpdefget_alpha(image,mask):#归一化mask=mask/255back_mask=mask#将透明度A值转成一样维度back_transparent=back_mask.reshape(back_mask.shape[0],back_mask.shape[1],1......
  • python爬虫:实现动态网页的爬取,以爬取视频为例
    引言:爬虫也被称为网络蜘蛛(Spider),是一种自动化的软件程序,能够在互联网上漫游,按照一定的规则和算法抓取数据。爬虫技术广泛应用于搜索引擎、数据挖掘、信息提取等领域,是互联网技术的重要组成部分。摘要:作为爬虫的初学者,网页越简单越好,因为网页的结构越简单,则组织框架更清晰......
  • 基于Python3.11及SQL Server实现股票组合价值曲线相关计算分析
       本文中Python的版本使用的是3.11,数据库使用的是SQLSERVER2008,项目运行效果图如下:蒙特卡洛相关:突出风险最小点:夏普比率相关夏普比率无风险最大点文章中的股票每日交易数据摘取自:英为财情 https://cn.investing.com/蒙特卡洛及夏普相关计算参考【胖哥真......
  • Python脚本中使用 if 语句导致的错误代码
    在Python脚本中使用if语句是一种常见的控制流程结构,用于根据条件决定程序的执行路径。当使用Python中的if语句时,可能会导致一些常见的错误。下面就是我经常遇到的错误代码示例及其可能的原因和解决方法,希望对大家有些帮助,少走弯路。1、问题背景一位用户在编写一......
  • python通知 设置系统托盘图标
    pythonQSystemTrayIcon.setIconQSystemTrayIcon.setIcon 是一个用于设置系统托盘图标的方法,它是PyQt5或PySide中的Qt库的一部分。这个方法让你可以设置系统托盘图标,它可以接受一个 QIcon 对象作为参数。以下是一些使用 QSystemTrayIcon.setIcon 的方法:直......
  • Python笔记 - 正则表达式
    正则表达式(RegularExpression,简称regex)是一种强大的工具,用于匹配字符串模式。在Python中,正则表达式通过re模块提供。本文将带你深入了解Python中的正则表达式,从基础概念到高级用法。1.什么是正则表达式?正则表达式是一种用来描述字符串模式的方法。它可以用来匹配、查找......
  • iptables教程
    1.iptables安装1.1iptables和iptables-service的关系iptables是基于内核的,和iptables-services没有关系,不用安装任何工具包就可以使用iptable命令添加的防火墙规则,但是iptables添加的规则是临时的,基于内存的,在系统重启后会消失,所以需要iptables.service服务来对添加......
  • 【python】用panda3d实现简易版《Minecraft》
    1.下載panda3d等等     panda3d是python的一个第三方库,在Windows的cmd下输入即可下載:pipinstallpanda3d     另外还用了 PIL,Pmw,ttkbootstrap這些第三方库,下載方式同上。。。2.方块模型     对于建模小白来说,blender有亿点难!! (资源放......
  • 哪些方法可以让 Python 代码易维护
    随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维护的压力,也能确保新的开发者能够快速了解项目的情况,同时能更好地全程保持应用程序的质量。使用外部库来检查代......
  • 基于python-CNN深度学习的手势识别数字-含数据集+pyqt界面
    代码下载:https://download.csdn.net/download/qq_34904125/89379220本代码是基于pythonpytorch环境安装的。下载本代码后,有个requirement.txt文本,里面介绍了如何安装环境,环境需要自行配置。或可直接参考下面博文进行环境安装。深度学习环境安装教程-anaconda-python-pyto......