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编程基础:文件基础

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

目录
相关文章
|
9月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
7899 1
|
9月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
746 0
|
9月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
9月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
9月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1552 68
|
9月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
532 3
|
9月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
766 3
|
9月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
589 3
|
9月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
382 4
|
10月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。

推荐镜像

更多