Python 程序设计实验报告8
安徽工程大学
Python 程序设计实验报告
班级:物流 191 姓名:余嘉 学号:3190505116 成绩:
日期:2020/6/4 指导老师:修宇
实验名称:文件
实验目的:
掌握读写文本文件或 CSV 文件,进而对数据进行处理的方法
实验条件:
PC 机或者远程编程环境
实验内容:
完成二个编程题
1.水浒传词频统计
问题描述:
使用词频统计的方法,生成《水浒传》出场次数最多的 10 个人物的姓名
读取《水浒传》文本文件的代码如下:
txt = open("AllManAreBrothers.txt", "r", encoding="utf-8").read()
代码模板:
# ThreeKingdomsV2
import jieba
# 读取 txt 文件,获取需要统计词汇的文本
txt = open("AllManAreBrothers.txt", "r", encoding="utf-8").read()
# 设置需要输出最多的前 n 位人物的数量
n = 10
# 请在下列 exludes 集合中,自行补充其他需要排除的词汇
excludes = {
"两个", "一个", "只见", "如何", "那里", "哥哥",
}
words = jieba.lcut(txt)
counts = {}
# 请扩展下列分支结构,转换更多替代词
for word in words:
if len(word) == 1:
continue
elif word == "宋江道":
rword = "宋江"
else:
rword = word
counts[rword] = counts.get(rword, 0) + 1
# 实现删除干扰词汇功能(此处约 2 行代码)
# 使用列表和 lambda 功能实现 词汇的排序 (此处约 2 行代码)
# 依次输出统计次数最多的前 n 位(此处约 3 行代码)
输出格式:
宋江 2997
李逵 1116
...
柴进 301
2.血压心率分析
问题描述:
BP.txt”是以逗号分隔的日期、血压、心率记录数据文本文件( open('BP.txt',encoding="gbk"))
时间,收缩压,舒张压,心率
1/5AM,136,76,73
1/5PM,143,80,73
2/5AM,135,82,68
2/5PM,140,81,67
3/5AM,142,76,67
3/5PM,141,80,71
4/5AM,138,77,74
4/5PM,149,76,72
统计收缩压、舒张压、心率的总平均值(保留 3 位小数)
收缩压平均值:xxx.xxx,舒张压平均值:xx.xxx,心率平均值:xx.xxx
实验记录与分析:
(请填写实验记录与分析结果)
1.水浒传词频统计
编写程序如下:
输出结果:
反思:
尝试很多次发现我写的程序总是没有呼延灼的词频,与其他同学对比感觉没有问题但是总是不对。我会与正确答案仔细对比尽量找出错误之处。
2.血压心率分析
编写程序如下:
输出结果:
反思:
一开始没有写出来,在老师和同学的帮助下写的过程也比较坎坷。下图所示的解决方法是,将三个平均值后的冒号改为中文冒号,中文冒号在作业平台中不能打出来,可先在其他平台先打好中文冒号再复制粘贴到代码内。