安徽工程大学

Python程序设计 实验报告

班级 物流191 姓名郭森学号3190505134 成绩

日期2020.6.2 指导老师修宇

实验八 文件

【实验目的】

掌握读写文本文件或 CSV 文件,进而对数据进行处理的方法。

【实验条件】

PC机或者远程编程环境

【实验内容】

完成二个编程题。

1、水浒传词频统计

水浒传-词频统计

(1)描述

使用词频统计的方法,生成《水浒传》出场次数最多的10个人物的姓名。

(2)文本下载

Python 后台运行并且记录log python记录程序运行次数_词频统计

(3)读取《水浒传》文本文件的代码如下:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

txt = open("AllManAreBrothers.txt", "r", encoding="utf-8").read()

(4)输出格式

Python 后台运行并且记录log python记录程序运行次数_文本文件_02

(5)代码模板:

# 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行代码)

2、血压心率分析

(1)描述

BP.txt”是以逗号分隔的日期、血压、心率记录数据文本文件( open('BP.txt',encoding="gbk"))

Python 后台运行并且记录log python记录程序运行次数_解决方案_03

Python 后台运行并且记录log python记录程序运行次数_Python 后台运行并且记录log_04

(2)输出格式

统计收缩压、舒张压、心率的总平均值(保留3位小数)。

Python 后台运行并且记录log python记录程序运行次数_解决方案_05

【实验记录与分析】

题目一:水浒传词频统计

1、输入

Python 后台运行并且记录log python记录程序运行次数_解决方案_06

Python 后台运行并且记录log python记录程序运行次数_文本文件_07

2、输出

Python 后台运行并且记录log python记录程序运行次数_词频统计_08

3、实验错误记录

(1)jieba库的安装出现问题

Python 后台运行并且记录log python记录程序运行次数_Python 后台运行并且记录log_09

解决方案:查百度说是网络延迟,所以安装时用了豆瓣的提速:pip install jieba -i http://pypi.douban.com/simple --trusted-host pypi.douban.com,安装成功

Python 后台运行并且记录log python记录程序运行次数_Python 后台运行并且记录log_10

(2)补充其他需要排除的词汇时多次运行程序,将一个个不是人名的词记录下来

Python 后台运行并且记录log python记录程序运行次数_文本文件_11

(3)排除非人名词汇时,第一次将“呼延”也排除了,导致输出错误

Python 后台运行并且记录log python记录程序运行次数_python上机实验报告读取文件_12

Python 后台运行并且记录log python记录程序运行次数_Python 后台运行并且记录log_13

解决方案:“呼延”是人名“呼延灼”的别称,因此将排除词汇中的“呼延”删去,在替代词中写入

Python 后台运行并且记录log python记录程序运行次数_词频统计_14

题目二:血压心率分析

1、输入

Python 后台运行并且记录log python记录程序运行次数_文本文件_15

2、输出

Python 后台运行并且记录log python记录程序运行次数_python上机实验报告读取文件_16

3、老师给的提示

Python 后台运行并且记录log python记录程序运行次数_文本文件_17

4、实验错误记录

(1)输出时中英文符号弄混,导致输出结果不对

Python 后台运行并且记录log python记录程序运行次数_解决方案_18

注:写代码时一定要注意中英文符号的切换,很容易出错

(2)老师发的代码没有理解,在idle上试验输出,理解代码

Python 后台运行并且记录log python记录程序运行次数_词频统计_19

Python 后台运行并且记录log python记录程序运行次数_文本文件_20

Python 后台运行并且记录log python记录程序运行次数_词频统计_21

注:当代码不理解时,可以在idle上尝试运行输出