文件“score.txt”中存储了歌手大奖赛中10名评委给一个歌手打的分,10个分数每个在一行 使用python实现从文件中读取数据,存入列表中,计算该名歌手的最终得分,最终得分的计算方式是10个评分去掉最高分,去掉最低分,然后求平均分。最终得分保留两位小数,输出到屏幕
时间: 2024-03-24 07:37:34 浏览: 125
有一个一维数组内放个学生成绩求平均成绩。-C++程序设计_谭浩强(完整版)ppt
好的,我可以帮你解决这个问题。以下是代码实现:
```python
with open('score.txt', 'r') as f:
scores = [float(line.strip()) for line in f]
scores.sort() # 将分数从低到高排序
scores = scores[1:-1] # 去掉最高分和最低分
avg_score = sum(scores) / len(scores)
print('该名歌手的最终得分为:{:.2f}'.format(avg_score))
```
解释一下上面的代码:
1. 使用 `with open('score.txt', 'r') as f` 打开文件,使用 `readlines()` 方法读取每一行的内容,将其存入列表 `scores` 中。由于每个分数在一行,我们使用 `strip()` 方法去掉每行末尾的空格和换行符,并使用 `float()` 方法将其转换为浮点数。
2. 对 `scores` 列表进行排序,然后使用切片 `scores[1:-1]` 去掉最高分和最低分。切片 `scores[1:-1]` 表示从第二个元素开始(即去掉最低分),到倒数第二个元素(即去掉最高分)为止。
3. 计算去掉最高分和最低分之后的分数的平均值,并使用字符串格式化输出结果。其中 `"{:.2f}"` 表示将保留两位小数输出结果。
阅读全文