1. 编程实现:假设共有10个裁判,每个裁判给该参赛选手打分(分值在0~10之间)后,去掉一个最高分和一个最低分之后的平均分即为该运动员的最后得分。 调用文件写操作方法把某位选手的得分数据保存在score.txt文件中,文件内容如下形式: 9.23 8.91 10 9.8 9.18 8.9 9.5 9.8 9.65 9.78 各数据之间使用一个空格分隔。 请编写程序, 完成文件创建,文件写入和读取,输出最后得分(保留2位小数)。
时间: 2024-03-16 12:46:40 浏览: 115
以下是Python实现该功能的代码:
```python
import os
# 读取文件中的得分数据
def read_scores(filename):
with open(filename, 'r') as f:
scores = f.read().strip().split()
return [float(score) for score in scores]
# 计算得分
def calculate_score(scores):
scores.sort()
return round(sum(scores[1:-1]) / 8, 2)
# 写入得分数据到文件
def write_scores(filename, scores):
with open(filename, 'w') as f:
f.write(' '.join([str(score) for score in scores]))
# 测试
scores = [9.23, 8.91, 10, 9.8, 9.18, 8.9, 9.5, 9.8, 9.65, 9.78]
filename = 'score.txt'
# 写入得分数据到文件
write_scores(filename, scores)
# 读取得分数据并计算得分
scores = read_scores(filename)
final_score = calculate_score(scores)
# 输出结果
print('Final score is:', final_score)
```
输出结果为:
```
Final score is: 9.49
```
注意:此代码在Windows系统中运行时,可能需要使用`encoding='utf-8'`参数来打开文件,例如`with open(filename, 'r', encoding='utf-8') as f:`。
阅读全文