python100练习题(3)
#统计学生成绩高分低分平均分 输入文件:
#三列:学号、姓名、成绩
#列之间用逗号分割,比如"101,小张,88”行之间用\n换行分割
#输出:最高分、最低分、平均分
def compute_score():
scores=[]
with open(r"C:\Users\Administrator\Desktop\python练习题文本保存\成绩.txt") as fin:
for line in fin:
line=line[:-1]#去掉换行符
fields=line.split(",")#必须进行分隔才能储存进列表
scores.append(int(fields[-1]))#-1和2效果相同,一个倒着取,一个正向取,注意转换数据类型
max_score=max(scores)#max函数求最大
min_score=min(scores)#min函数求最小
avg_score=round(sum(scores)/len(scores),2)
return max_score,min_score,avg_score
'''max_score,min_score,avg_score=compute_score()
print(f"max_score={max_score},min_score={min_score},avg_score={avg_score}")'''
#统计文章中每个单词的出现次数
word_count={}
with open(r"C:\Users\Administrator\Desktop\python练习题文本保存\统计单词数量.txt") as fin1:
for line in fin1:
line=line[:-1]
words=line.split()#按照空格分隔
for word in words:
if word not in word_count:
word_count[word]=0#给所有的单词附上初始值0
word_count[word]+=1
print(word_count)#如果想要对结果进行排序并且只看出现次数最多的10个单词,代码如下
print("\n降序显示前10名:\n")
print(sorted(word_count.items(),#items返回一个列表包换键名和键值
key=lambda x: x[1],#选择出现次数作为排序依据,x[0]为键名,x[1]为键值
reverse=1)[0:10])#python欺骗语法
#统计目录下所有文件的大小
import os
print(os.path.getsize(r"C:\Users\Administrator\Desktop\python练习题文本保存\统计单词数量.txt"))#os.path.getsize获取文件大小(字节),必须先引入os模块
sum_size=0
for file in os.listdir():
#os.listdir()返回指定目录下所有文件名称,包含path路径
if os.path.isfile(file):
#os.path.isfile()用来判断文件是否是纯文件,是就输出文件名,否就不输出文件名
sum_size+=os.path.getsize(file)
print(file)
print("所有文件大小和:",sum_size/1000)