当前位置: 首页 > news >正文

python 实验7

姓名:轨迹

学号: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语句的用法,自定义异常捕获异常。

相关文章:

python 实验7

姓名&#xff1a;轨迹 学号&#xff1a;6666 专业年级&#xff1a;2021级软件工程 班级&#xff1a; 66 实验的准备阶段 (指导教师填写) 课程名称 Python开发与应用 实验名称 文件异常应用 实验目的 &#xff08;1&#xff09;掌握基本文件读写的方式&#xff1b; …...

日历应用程序 BusyCal mac中文版软件特点

BusyCal mac是一款日历应用程序&#xff0c;它可以帮助用户轻松地管理日程安排、事件提醒、会议安排等。BusyCal 支持 macOS 和 iOS 平台&#xff0c;并且可以与 iCloud、Google 日历、Exchange 等多种日历服务进行同步。 BusyCal mac软件特点 强大的日历功能&#xff1a;Busy…...

软件测试/测试开发丨接口自动化测试,接口鉴权的多种方式

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/28000 一、后端接口鉴权常用方法 cookie 携带身份信息请求认证之后的每次请求都携带cookie信息&#xff0c;cookie记录在请求头中 token 携带身份信息请求…...

08 robotframework 修改乱码问题

修改[Python目录]\Lib\site-packages\robotide\lib\robot\utils中的encodingsniffer.py if UNIXY: DEFAULT_SYSTEM_ENCODING UTF-8 DEFAULT_OUTPUT_ENCODING UTF-8 else: DEFAULT_SYSTEM_ENCODING cp1252 DEFAULT_OUTPUT_ENCODING cp437 将DEFAUL…...

门店如何设置多个联系电话和营业时间

​小程序中门店信息是非常重要的&#xff0c;通常需要有门店地址、门店电话和营业时间等。采云小程序支持设置多个门店联系电话&#xff0c;避免客户无法联系到门店。而且&#xff0c;也支持设置多个营业时间时段。例如周一到周五早08:00 - 18:00 。客户在周末下单的时候&#…...

第5章 字典和结构化数据

目录 1. 字典数据类型1.1 添加键值对1.2 删除键值对1.3 keys() 方法1.4 values() 方法1.5 items() 方法1.6 检查字典总是否存在键或值1.7 get() 方法1.8 setdefault() 方法 2. 嵌套2.1 在列表中存储字典2.2 在字典中存储列表2.3 在字典中存储字典 1. 字典数据类型 键值对无序 …...

2023年咸阳市《网络建设与运维》赛题

2023年咸阳市职业院校技能大赛 网络建设与运维赛项 赛卷 023年11月 竞赛说明 一、竞赛项目简介 “网络建设与运维”竞赛共分为模块一:网络理论测试;模块二:网络建设与调试;模块三:服务搭建与运维等三个模块。 二、竞赛注意事项 1.禁止携带和使用移动存储设备、计算...

Spring Cloud Netflix微服务组件-Eureka

目录 CAP理论 注册中心对比 为什么注册中心更适合用AP&#xff1f; 分布式系统AP和CP如何取舍&#xff1f; Eureka核心功能点 Euraka server启动的主线流程 总体流程图 EnableEurekaServer 流程图 EurekaServerAutoConfiguration EurekaServerInitializerConfigurat…...

FreeRTOS_任务创建与删除

1. 函数TaskCreate() 2. 函数xTaskDelete() xTaskDelete(NULL) //参数为NULL&#xff0c;为删除当前任务 3.其它相关任务API函数...

什么是Vue的前端微服务架构(Micro Frontends)?

前端微服务架构&#xff08;Micro Frontends&#xff09;是一种借鉴了后端微服务架构思想的新型前端架构风格。它将前端应用程序拆分为多个小型、独立的部分&#xff0c;每个部分都可以独立部署、独立开发和独立运行。这种架构的出现是为了解决庞大的一整块后端服务带来的变更与…...

什么是原生IP与广播IP?原生IP有何优势?

在代理IP中&#xff0c;我们常常听到原生IP与广播IP&#xff0c;二者有何区别&#xff1f;如何区分呢&#xff1f;下面为大家详细讲解。 一、什么是原生ip 原生IP地址是互联网服务提供商&#xff08;ISP&#xff09;直接分配给用户的真实IP地址&#xff0c;无需代理或转发。此…...

vnodeToString函数把vnode转为string(innerhtml)

函数 function vnodeToString(vnode) {// 如果是文本节点&#xff0c;直接返回文本内容if ([string, boolean, undefined, null, number].includes(typeof vnode)) {return vnode;}// 转换节点的属性为字符串形式const attrs Object.keys(vnode.attrs || {}).map((key) > …...

【Halcon】C# HTuple多参数设置小技巧

比如&#xff0c;在halcon中我们经常这么写&#xff1a; dev_disp_text (hello, window, 100, 200, red, [box,shadow],[true,false])[‘box’,‘shadow’] 和 [‘true’,‘false’] 成对出现。 可以同时对多个参数设置。 如果用halcon翻译C#&#xff0c;你会得到&#xff1a…...

此芯科技加入绿色计算产业联盟,参编绿色计算产业发展白皮书

近日&#xff0c;此芯科技正式加入绿色计算产业联盟&#xff08;Green Computing Consortium&#xff0c;简称GCC&#xff09;&#xff0c;以Arm架构通用智能CPU芯片及高能效的Arm PC计算解决方案加速构建软硬协同的绿色计算生态体系&#xff0c;推动绿色计算产业加速发展。 继…...

webrtc 生成unpack_aecdump工具

1.download webrtc-code https://git.ringcentral.com/build/webrtc-build 2.下载webrtc代码 3.terminal 进入src目录下 4.构建目录&#xff1a; terminal执行&#xff1a;gn gen out/Release --argsis_component_buildfalse 5.构建可执行文件&#xff1a; terminal执行…...

数据结构第四课 -----线性表之队列

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

蓝桥杯 第 3 场算法双周赛4,7题

迷宫逃脱 一眼数字三角形模型&#xff0c;因为是要求最大值&#xff0c;而且对转移状态有限制&#xff0c;所以需要注意dp状态的初始化&#xff0c;可以将所有状态赋值为-0x7f&#xff0c;然后将dp[0][1]和dp[1][0]初始化为0&#xff0c;又因为考虑到起始点a[1][1]&#xff0c…...

西安有哪些比较好的设计院?西安名企设计院介绍!

1、西北综合勘察设计研究院&#xff08;地址&#xff1a;陕西省西安市习武园9号&#xff09; 西北综合勘察设计研究院始建于1952年&#xff0c;是西北地区建设领域成立最早、规模最大的的综合性甲级勘察设计咨询科研单位&#xff0c;公司业务以工程勘察、建筑设计、市政设计、…...

Java获取Jar、War包路径,并生成可编辑修改的本地配置文件

前言 本地的可修改配置文件的编写理应是一个很常用的功能&#xff0c;但由于数据库的存在&#xff0c;它鲜少被提及&#xff0c;大多数我们直接存储到数据库中了。 以至于现今&#xff0c;除了没接触数据库的新手时常使用它以外&#xff0c;它没有太多的出场机会。 也因此&am…...

FPGA UDP RGMII 千兆以太网(4)ARP ICMP UDP

1 以太网帧 1.1 1以太网帧格式 下图为以太网的帧格式: 前导码(Preamble):8 字节,连续 7 个 8’h55 加 1 个 8’hd5,表示一个帧的开始,用于双方 设备数据的同步。 目的 MAC 地址:6 字节,存放目的设备的物理地址,即 MAC 地址 源 MAC 地址:6 字节,存放发送端设备的…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...