python写一个程序十名裁判分别给十名选手打分,每名选手去掉一个最高分和最低分后计算平均分,按照平均分给选手排名
时间: 2024-09-27 09:14:14 浏览: 33
在Python中,你可以创建一个列表来存储每位选手的成绩,然后遍历这个列表,对每个选手去除最高分和最低分后再计算平均分。这里是一个简单的例子:
```python
# 假设选手成绩列表
scores = [85, 90, 76, 92, 88, 95, 80, 91, 87, 84]
def calculate_average(scores):
# 先排序分数
scores.sort()
# 计算去头去尾后的平均分
adjusted_scores = scores[1:-1]
return sum(adjusted_scores) / len(adjusted_scores)
# 给每位选手计算并打印平均分
for i, score in enumerate(scores):
avg_score = calculate_average([score])
print(f"选手{i+1}的平均分为:{avg_score}")
# 根据平均分从高到低排序并打印排名
sorted_indices = sorted(range(len(scores)), key=lambda x: scores[x], reverse=True)
print("选手排名:")
for index in sorted_indices:
print(f"{index + 1}. {scores[index]} 分")
```
在这个程序中,我们首先对得分列表排序,然后取中间部分的分数作为调整后的得分。最后,根据平均分对选手进行排名。
阅读全文