摘要:本文旨在帮助中国药科大学的学生学习必修课《Python与医药大数据处理》,在实验操作题方面给予代码参考。
欢迎各界人士共同讨论Python相关话题,并给予宝贵建议。
目录
PY70302:生成一个随机整数矩阵,并将其保存为文本文件和CSV文件
PY70301:将药学生核心素养的统计结果保存为文本文件
要求:统计文本文件“学生培养.txt”中出现次数最多的10个用于展示药学生的核心素养的词语,将统计结果保存至文件“PY70301.txt”中
药学生核心素养:
创新 12
实践 11
药学 9
创业 9
能力 7
德智体美 4
全面 3
创新能力 3
探索 3
研究 3
import jieba
fo=open('PY70301.txt','w')
txt=open('学生培养.txt','r',encoding='utf-8').read()
excludes={"教育","学生","建设","计划","体系","培养","人才培养","提升","加强",\
"卓越","模式","合作","发展","学习","国际化","提高","行业","特色",\
"研究生","海外","联合","改革","综合","课程体系","完善","教学","实施",\
"构建","育人","服务","项目","实习","推进","交流","加快","考核","优化",\
"通识","对接"}
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
else:
counts[word]=counts.get(word,0)+1
for word in excludes:
del(counts[word])
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
fo.write("药学生核心素养:\n")
for i in range(10):
word,count=items[i]
fo.write("{:<15}\t{:>5}\n".format(word,count))
fo.close()
PY70302:生成一个随机整数矩阵,并将其保存为文本文件和CSV文件
要求:生成一个10*10的矩阵(元素为1~100的随机整数)并将其保存为文本文件“rm.txt”,用空格分隔列向量,用换行符分隔行向量;
#由于随机数种子不同,生成的数字矩阵一般不同
71 74 24 65 88 18 98 83 42 15
15 72 34 69 33 26 57 100 95 22
98 79 16 83 47 54 67 1 27 43
8 66 28 29 27 30 99 95 31 31
88 9 37 67 88 71 38 98 86 99
96 77 92 36 18 53 49 59 49 15
55 66 55 93 23 27 27 69 20 96
61 54 27 69 39 33 71 6 20 26
45 21 35 92 65 28 94 7 76 99
66 65 11 40 96 9 62 18 43 14
然后编写程序,将该文本文件另存为CSV格式文件“rm.csv”
71,74,24,65,88,18,98,83,42,15
15,72,34,69,33,26,57,100,95,22
98,79,16,83,47,54,67,1,27,43
8,66,28,29,27,30,99,95,31,31
88,9,37,67,88,71,38,98,86,99
96,77,92,36,18,53,49,59,49,15
55,66,55,93,23,27,27,69,20,96
61,54,27,69,39,33,71,6,20,26
45,21,35,92,65,28,94,7,76,99
66,65,11,40,96,9,62,18,43,14
from random import randint
ft=open("rm.txt","w+")
fc=open("rm.csv","w")
for i in range(10):
ls=[str(randint(1,100)) for x in range(10)]
ft.write(" ".join(ls)+"\n")
ft.seek(0)
txt=ft.read()
fc.write(txt.replace(" ",","))
ft.close()
fc.close()
PY70303:读写CSV文件
要求:将CSV文件“drug2020.csv”中的药品销售二维数据读入列表,然后计算其中的数值数据,将销售数量值修改为销售百分比,最后将结果写入文件“drug2020out.csv”
drug2020.csv:
商品名称,销售数量
苯磺酸氨氯地平片(安内真),1578
开博通,1332
酒石酸美托洛尔片(倍他乐克),946
苯磺酸氨氯地平片(络活喜) ,671
硝苯地平片(心痛定),621
drug2020out.csv
商品名称,销售数量占比
苯磺酸氨氯地平片(安内真),30.65%
开博通,25.87%
酒石酸美托洛尔片(倍他乐克),18.38%
苯磺酸氨氯地平片(络活喜) ,13.03%
硝苯地平片(心痛定),12.06%
fr=open("drug2020.csv","r")
fw=open("drug2020out.csv","w")
txt=fr.read()
ls=txt.strip("\n").split("\n")
del(ls[0])
ls1=[x.split(",") for x in ls]
cnt=0
for i in ls1:
cnt+=int(i[1])
fw.write("商品名称,销售数量占比\n")
for j in ls1:
fw.write("{},{:.2%}\n".format(j[0],int(j[1])/cnt))
fr.close()
fw.close()