python 实验7

news2024/9/21 12:21:45

姓名:轨迹

学号:6666

专业年级:2021级软件工程 

班级:  66

实验的准备阶段

(指导教师填写)

课程名称

Python开发与应用

实验名称

文件异常应用

实验目的

1)掌握基本文件读写的方式;

2)掌握csv文件的读写;

3)掌握try-except-else语句的用法,自定义异常捕获异常。

实验内容

1)使用read() , readLines() , readLine()读取一个文本文件,并打印;

2)以字典格式读取csv文件并打印;

3)自定义异常并抛出。

实验类型

(打R)

□验证性    □演示性     R设计性      £综合性

实验的重点、难点

实验重点:文件读取、异常

实验难点:字典格式读取文件

实验环境

Python 3.8以上版本,pycharm+anaconda等集成开发环境

实验的实施阶段

实验步骤及实验结果

1、实验题目:文件读取

将StudentInfo中的信息以字典的形式存储在列表里。

[{'学号': '1445204009', '姓名': '王召', '平时成绩': '100', '期末成绩': '90'},

 {'学号': '1445204013', '姓名': '林锦', '平时成绩': '95', '期末成绩': '67'}

 ...

]

源代码:

import csv

with open('D:\\StudentInfo.csv','r',encoding="utf-8-sig") as f:
    reader = csv.DictReader(f)
    a =
list(reader)
   
print(a)

列出测试数据和实验结果截图:

2、实验题目:字典格式读取文件

现有一个user.csv文件,内容如下:

name,username,email

杨洋,yangy,yangy@sina.com

贾子豪,jiazh,jiazh@126.com

于飞,yuf,yuf@163.com

田宇辰,tianych,tianych@sina.com

1)以字典格式读取csv文件并打印出每个人的名字和电子邮件地址

import csv

with open('D:\\user.csv','r',encoding="utf-8-sig") as f:
    reader = csv.DictReader(f)
   
for i in reader:
       
print(i['name'],i['email'])

2)新建usercopy.csv文件,将user.csv文件的内容按照csv文件写入的方式写入进usercopy.csv中。

源代码:

import csv

with open('D:\\user.csv','r',encoding="utf-8-sig") as f:
    reader = csv.DictReader(f)
    field_name = reader.fieldnames
   
with open('D:\\usercopy.csv','w',encoding='utf-8-sig',newline='') as f2:
        writer = csv.DictWriter(f2
,field_name)
        writer.writeheader()
       
for i in reader:
            writer.writerow(i)

列出测试数据和实验结果截图:

3、异常:

下面定义了一个CandleShop类:

class CandleShop:

    name = "Here's a Hot Tip: Buy Drip Candles"

    def __init__(self, stock):

        self.stock = stock

    def buy(self, color):

        self.stock[color] = self.stock[color] - 1

candle_shop = CandleShop({'blue': 6, 'red': 2, 'green': 0})

candle_shop.buy('blue')

1)自定义一个异常类OutOfStack

class OutOfStack(Exception):
   
def __init__(self, msg):
       
self.msg = msg

   
def __str__(self):
       
return self.msg

2)请修改实例buy当购买蜡烛的量超出库存时会抛出OutOfStack异常

class OutOfStack(Exception):
   
def __init__(self, msg):
       
self.msg = msg

   
def __str__(self):
       
return self.msg

class CandleShop:
    name =
"Here's a Hot Tip: Buy Drip Candles"

   
def __init__(self, stock):
       
self.stock = stock

   
def buy(self, color):
       
try:
           
if self.stock[color] - 1 < 0:
               
raise OutOfStack('购买蜡烛的量超出库存!')
       
except OutOfStack as e:
           
print(e)
       
else:
           
self.stock[color] = self.stock[color] - 1


candle_shop = CandleShop({'blue': 6, 'red': 2, 'green': 0})
candle_shop.buy(
'blue')

3)想办法在主程序中加一个代码会引起程序抛出OutOfStack

candle_shop.buy('green')

4)捕获该异常,并输出异常的具体信息。

实验结果的处理阶段

实验结果的分析与总结

掌握基本文件读写的方式;

掌握csv文件的读写;

掌握try-except-else语句的用法,自定义异常捕获异常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于消息队列+多进程编写的银行模拟系统

银行模拟系统 概述客户端 client.c服务端 serve.c开户 enroll.c存款 save.c转账 transfer.c取款 take.cmakefile文件 概述 该案例大体过程为&#xff0c;服务器先启动&#xff0c;初始化消息队列和信号&#xff0c;用多线程技术启动开户、存钱、转账、取钱模块&#xff0c;并且…

Python基础-解释器安装

一、下载 网址Welcome to Python.orgPython更新到13了&#xff0c;我们安装上一个12版本。 这里我保存到网盘里了&#xff0c;不想从官网下的&#xff0c;可以直接从网盘里下载。 链接&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间…

IDEA从Gitee拉取代码,推送代码教程

打开IDEA&#xff0c;选择Get from Version Control 输入Gitee 仓库项目的URL地址 URL地址输入后点击Clone&#xff0c;即拉取成功 向Gitee提交推送代码 右键选中项目&#xff0c;选中Git 第一步先点击 Add 第二步 点击Commit填写提交信息&#xff0c;点击Commit就会出现下面…

Jenkins的一些其他操作

Jenkins的一些其他操作 1、代码仓库Gogs的搭建与配置 Gogs 是一款极易搭建的自助 Git 服务&#xff0c;它的目标在于打造一个最简单、快速和轻松的方式搭建 Git 服务。使用 Go 语言开发的它能够通过独立的二进制进行分发&#xff0c;支持了 Go 语言支持的所有平台&#xff0…

Vue修饰符(Vue事件修饰符、Vue按键修饰符)

目录 前言 Vue事件修饰符 列举较常用的事件修饰符 .stop .prevent .capture .once Vue按键修饰符 四个特殊键 获取某个键的按键修饰符 前言 本文介绍Vue修饰符&#xff0c;包括Vue事件修饰符以及按键修饰符 Vue事件修饰符 列举较常用的事件修饰符 .stop: …

【Linux基础IO篇】深入理解文件系统、动静态库

【Linux基础IO篇】深入理解文件系统、动静态库 目录 【Linux基础IO篇】深入理解文件系统、动静态库再次理解文件系统操作系统内存管理模块&#xff08;基础&#xff09;操作系统如何管理内存 Linux中task_struct源码结构 动态库和静态库动静态库介绍&#xff1a;生成静态库库搜…

IDEA安装配置SceneBuilder

1、下载 SceneBuilder 地址&#xff1a; Scene Builder - Gluon ​​​​​​​ Scene Builder | JavaFX中文官方网站 选择符合自己系统版本&#xff0c;JAVA版本的下载 2、安装SceneBuilder 执行下载的 SceneBuilder 安装程序&#xff0c;并按照安装向导的指示进行…

Pikachu漏洞练习平台之CSRF(跨站请求伪造)

本质&#xff1a;挟制用户在当前已登录的Web应用程序上执行非本意的操作&#xff08;由客户端发起&#xff09; 耐心看完皮卡丘靶场的这个例子你就明白什么是CSRF了 CSRF(get) 使用提示里给的用户和密码进行登录&#xff08;这里以lili为例&#xff09; 登录成功后显示用户…

(Matalb时序预测)GWO-BP灰狼算法优化BP神经网络的多维时序回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码展示&#xff1a; 四、完整代码数据说明手册下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于M…

SSH-远程连接服务器

一、理论知识 目前远程连接服务器的主要类型&#xff1a; 文字接口明文传输&#xff1a;Telnet、RSH 等为主&#xff0c;目前非常少用。文字接口加密&#xff1a;SSH 为主&#xff0c;已经取代上述的 Telnet、RSH 等明文传输方式。图形接口&#xff1a;XDMCP&#xff08;X Di…

Neo4j数据库介绍及简单使用

图数据库介绍 图数据库是一种专门设计用于存储和管理图形数据的数据库类型。在图数据库中&#xff0c;数据以图的形式表示&#xff0c;其中节点表示实体&#xff0c;边表示实体之间的关系。这种表示方式非常适合处理具有复杂关系的数据&#xff0c;如社交网络、推荐系统、网络…

安装部署PowerDNS--实现内网DNS解析(use)

使用PowerDNS实现内网DNS解析_powerdns-admin-CSDN博客 https://www.cnblogs.com/guangdelw/p/17348982.html 一、概念介绍 PowerDNS是一个域名解析服务&#xff0c;官网提供了三个组件&#xff1a;Authoritative、Recursor、dnsdist&#xff0c;分别用来作为权威服务器、域名递…

Leetcode——岛屿的最大面积

1. 题目链接&#xff1a;695. 岛屿的最大面积 2. 题目描述&#xff1a; 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合&#xff0c;这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都…

ssh脚本找不到命令或者执行无效的解决办法

如图&#xff1a;今天在编写脚本时发现的这个问题&#xff0c; 在排除脚本语法错误、编码格式等情况下&#xff0c;仍然出现“bash 。。未找到命令”的字样 解决办法&#xff1a; 给每台虚拟机的环境变量source一下&#xff1a; 命令如下 source /etc/profile或者输入 vim ~…

【数据结构】直接选择排序(你知道最不常用的排序算法有哪些吗?)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

【2023云栖】黄博远:阿里云人工智能平台PAI年度发布

本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;黄博远 | 阿里云计算平台事业部资深产品专家、阿里云人工智能平台PAI产品负责人 演讲主题&#xff1a;阿里云人工智能平台PAI年度发布 AIGC是我们这个时代的新机遇 今年云栖大…

单相过压继电器DVR-G-100-1 0~500V AC/DC220V 导轨安装

系列型号 DVR-G-100-1X3数字式过压继电器&#xff1b; DVR-G-100-3三相过压继电器&#xff1b; DVR(H)-G-100-1单相过压继电器&#xff1b; DVR-Q-100-3三相欠压继电器&#xff1b; DVR(H)-Q-100-3三相欠压继电器 一、用途 主要应用于电机、变压器等主设备以及输配电系统的继…

人工智能与大数据:驱动现代业务转型的双引擎

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和大数据已成为驱动业务和技术创新的关键力量。它们的结合不仅重塑了传统行业&#xff0c;也催生了新的商业模式和服务方式。 AI与大数据在零售行业的应用 在零售行业&#xff0c;AI和大数据的应用已经成为提…

代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和

LeetCode T1143 最长公共子序列 题目链接:1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 动规五部曲分析 1.确定dp数组的含义 这里dp数组的含义是结尾分别为i-1,j-1的text1和text2的最长公共子序列长度 至于为什么是i-1,j-1我之前已经说过了,这里再…

电池故障估计:Realistic fault detection of li-ion battery via dynamical deep learning

昇科能源、清华大学欧阳明高院士团队等的最新研究成果《动态深度学习实现锂离子电池异常检测》&#xff0c;用已经处理的整车充电段数据&#xff0c;分析车辆当前或近期是否存在故障。 思想步骤&#xff1a; 用正常电池的充电片段数据构造训练集&#xff0c;用如下的方式构造…