读取外部文件数据,使数据从小到大排列并进行对文体素质分数的最大值、最小值和平均值的计算,程序运行无误,代码行数超过60行,有注释,代码书写规范,使用库函数。文件数据如下:
77.5
72.5
85
82
76.5
76
76
73.5
77
74.5
74.5
73.5
80.5
85
90
76.5
90
76.5
76.5
80
85
75.5
88.5
76.5
72
75.5
74
82
60行的要求有点过分,插了那么多空行,才凑满:
if __name__ == '__main__':
# 打开文件
f = open('test.txt', 'r')
# 读文件
data = f.readlines()
# 关闭文件
f.close()
# 初始化分数列表
scores = []
# 遍历data转成float类型
for i in data:
if i: # 如有空行略过
scores.append(float(i)) # 写入分数列表
# 初始化分数列表
sMax = scores[0]
# 遍历分数列表求出最大值
for i in scores:
if sMax < i:
sMax = i
# 初始化分数列表
sMin = scores[0]
# 遍历分数列表求出最小值
for i in scores:
if sMin > i:
sMin = i
# 初始化总分
Total = 0
# 遍历分数列表求出总分
for i in scores:
Total += i
# 求出平均值
Average = round(Total/len(scores), 2)
# 求出最大值
print('最大值:', sMax)
# 求出最小值
print('最大值:', sMin)
# 求出平均值
print('平均值:', Average)
with open('外部文件路径','r') as file:
data = list(map(float,file.readlines()))# 读取数据文件
print('【最大值】%s'%max(data))# 计算并打印最大值
print('【最小值】%s'%min(data))# 计算并打印最小值
print('【平均值】%s'%(sum(data)/len(data)))# 计算并打印平均值