Python编程基础:实验7——文件和数据格式化

简介: 巩固Python文件操作相关基础知识,熟练的掌握文件操作至关重要。

一、前言

在本期实验中我们将利用之前学习的相关Python文件操作来进行题目代码练习,巩固知识。

二、我的环境

  • 电脑系统:Windows 11
  • 语言版本:Python 3.10.4
  • 编译器:VSCode

三、实验目的与要求

  1. 熟练掌握文件的打开、关闭和读写
  2. 理解数据组织的维度、掌握一维数据和二维数据的处理方法
  3. 掌握采用CSV格式对一二维数据文件进行读写的方法

四、实验任务

1、程序填空

【填空12-1】编写程序,根据用户输入的星座名称,输出此星座的出生日期范围及对应的星座符号。程序不完整,请完善代码。

星座及出生日期范围已存于文件SunSign.csv中,文件内容如下图所示。首先读入CSV文件中数据到一个列表中,然后获得用户输入,则输出此星座信息,直至用户输入“exit”程序结束。

image-20221012094755871.png

image-20221012095844144.png

fo=open(".\填空题\SunSign.csv", "r", encoding="GB18030")
ls= []
forlineinfo:
line=line.replace("\n","")
ls.append(line.split(","))
fo.close()
whileTrue:
InputStr=input()
InputStr.strip()
flag=FalseifInputStr=='exit':
breakforlineinls:
ifInputStr==line[0]:
print("{}座的生日位于{}-{}之间".format(chr(eval(line[3])), line[1], line[2]))
flag=Trueifflag==False:
print("输入星座名称有误!")

它运行的结果是:

白羊座♈座的生日位于321-419之间天蝎座♏座的生日位于1024-1122之间水瓶座♒座的生日位于120-218之间exit

【填空12-2】编写程序,统计并输出传感器采集数据中光照部分的最大值、最小值和平均值,所有值保留小数点后2位。程序不完整,请完善代码。

已知传感器采集数据文件为sensor-data.txt,如下图所示,其中每行是一个整体数据.分别包括"日期、时间、温度、湿度、光照和电压"等6个读数,光照数据处于第5列,在列表中表示光照数据时下标应为4。

image-20221012100521797.png

f=open(".\填空题\sensor-data.txt", "r")
avg, cnt=0, 0maxv, minv=0, 9999forlineinf:
ls=line.split()
cnt+=1val=eval(ls[4])
avg+=valifval>maxv:
maxv=valifval<minv:
minv=valprint("最大值、最小值、平均值分别是:{:.2f},{:.2f},{:.2f}".format(maxv, minv, avg/cnt))
f.close()

它运行的结果是:

最大值、最小值、平均值分别是:47.08,45.08,46.08

2、程序编程

【编程12-1】文件smartphone.txt 存放着部分公司手机年销量数据,每行为每家公司连续4年的销量数据,数据项间以制表符作为分隔,文件内容如下图所示。

编写程序,显示各公司年销量是否快速增长的情况(本题设年销量增长率均超过30%为快速增长),程序运行结果如下图所示。现给出部分程序代码,请根据题目要求进行编程。

image-20221012100649054.png

rate=0.3defisBigGrowth(L, rate):
foriinrange(0, len(L)-1):
yearGrowth= (L[i+1]-L[i])/L[i]
if(yearGrowth<rate):
returnFalsereturnTrueprint("手机公司  是否快速增长?")
data= []
withopen(".\编程题\smartPhone.txt",encoding="utf-8") asf:
data=f.readlines()
deldata[0]
forcompanyindata:
company=company.split()
foriinrange(1, len(company)):
company[i] =float(company[i])
ifisBigGrowth(company[1:], 30/100):
print("%s\t\t%s"% (company[0], "快速"))
else:
print("%s\t\t%s"% (company[0], "否"))

它运行的结果是:

手机公司是否快速增长?SamsungAppleHuaweiOPPO快速Vivo快速ZTELGLenovoXiaomi

五、最后我想说

本期有关文件和数据格式化的实验就到这里结束了,如果还对文件相关操作不熟悉的朋友可以去看看我前面更新的有关文件操作知识的博客。

Python编程基础:文件基础

另外,在本期实验中,如果出现编码报错,可以修改一下编码进行解决,如果出现无法找到文件的错误,可以尝试一下相对路径,看看文件是否跟代码放在同一文件目录下,或者使用绝对路径尝试一下。

目录
相关文章
|
4天前
|
前端开发 Python
使用Python+openpyxl实现导出自定义样式的Excel文件
本文介绍了如何使用Python的openpyxl库导出具有自定义样式的Excel文件,包括设置字体、对齐方式、行列宽高、边框和填充等样式,并提供了完整的示例代码和运行效果截图。
8 1
使用Python+openpyxl实现导出自定义样式的Excel文件
|
5天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
|
3天前
|
数据采集 存储 人工智能
掌握Python编程:从基础到进阶的实用指南
【8月更文挑战第17天】 本文旨在通过浅显易懂的语言和实际案例,为初学者和有一定基础的开发者提供一条清晰的Python学习路径。我们将从Python的基本语法入手,逐步深入到面向对象编程、数据科学应用及网络爬虫开发等高级主题。每个部分都配备了代码示例和实操建议,确保读者能够将理论知识转化为实际能力。无论你是编程新手,还是希望提升Python技能的开发者,这篇文章都将为你打开一扇通往高效编程世界的大门。
7 2
|
3天前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
14 1
|
4天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
4天前
|
数据采集 Java PHP
使用Python+requests简单实现模拟登录以及抓取接口数据
本文通过Python的requests库演示了如何实现模拟登录和抓取接口数据的过程,包括设置请求头、发送POST请求进行登录以及使用登录后的会话进行GET请求获取数据。
15 1
|
5天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
6天前
|
Python
Python——批量将PDF文件转为图片
Python——批量将PDF文件转为图片
16 2
|
6天前
|
Python
Python——将PPT和Word转为PDF文件
Python——将PPT和Word转为PDF文件
22 1
|
1天前
|
消息中间件 SQL Java
实时数仓 Hologres产品使用合集之如何用python将kafka数据写入
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。