请根据评分表,将每位选手的得分去掉一个最高分和一个最低分后求平均分,并按照平均分由高到低的顺序输出选手编号和最后得分,最后得分保留两位小数。python
时间: 2024-05-27 14:14:42 浏览: 165
scores = []
for i in range(1, 11):
score = input("请输入第{}位选手的得分:".format(i))
scores.append(float(score))
scores.sort()
scores = scores[1:-1]
avg_score = round(sum(scores) / len(scores), 2)
rank = sorted(range(len(scores)), key=lambda k: scores[k], reverse=True)
print("选手编号 最后得分")
for i in range(len(rank)):
print("{:8d} {:8.2f}".format(rank[i]+1, scores[i]))
相关问题
python 8位评委对入围的 6 名选手给出了最终的评分,请根据评分表,将每位选手的得分去掉一个最高分和一个最低分后求平均分,并按照平均分由高到低的顺序输出选手编号和最后得分。
以下是可能的实现方法:
```python
scores = {
1: [9, 8, 7, 8, 9, 7],
2: [8, 8, 8, 7, 9, 6],
3: [6, 7, 8, 6, 8, 7],
4: [9, 6, 8, 7, 7, 6],
5: [8, 7, 9, 6, 8, 7],
6: [7, 6, 8, 7, 7, 6]
}
averages = {}
for i in range(1, 7):
sorted_scores = sorted(scores[i])[1:-1]
average = sum(sorted_scores) / len(sorted_scores)
averages[i] = average
sorted_averages = sorted(averages.items(), key=lambda x: x[1], reverse=True)
for i, average in sorted_averages:
print(f"选手 {i}: {average:.2f}")
```
这个程序使用一个字典来存储每个选手的评分,其中键是选手的编号,值是一个评分列表。然后,程序计算每个选手的平均分,去掉了一个最高分和一个最低分,这里使用了 Python 的列表切片和排序函数。最后,程序将平均分按照从高到低的顺序排序,并输出每个选手的编号和最后得分。
21软件1班进行了一场班级好声音歌唱比赛,现有8位评委对参赛的8位选手给出了最终的评分,请根据评分表,将每位选手的得分去掉一个最高分和一个最低分后求平均分,并按照平均分由高到低的顺序输出选手编号、选手姓名
、平均分。
假设选手编号分别为1~8,选手姓名分别为A~H,则评分表如下:
| 选手编号 | 选手姓名 | 评委1 | 评委2 | 评委3 | 评委4 | 评委5 | 评委6 | 评委7 | 评委8 |
| -------- | -------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
| 1 | A | 95 | 92 | 90 | 88 | 87 | 85 | 84 | 82 |
| 2 | B | 90 | 88 | 85 | 82 | 80 | 78 | 75 | 72 |
| 3 | C | 80 | 82 | 83 | 85 | 87 | 88 | 90 | 92 |
| 4 | D | 85 | 87 | 88 | 90 | 92 | 93 | 94 | 95 |
| 5 | E | 75 | 78 | 80 | 82 | 85 | 87 | 88 | 90 |
| 6 | F | 88 | 85 | 82 | 80 | 78 | 75 | 72 | 70 |
| 7 | G | 82 | 83 | 85 | 87 | 88 | 90 | 92 | 93 |
| 8 | H | 78 | 80 | 82 | 85 | 87 | 88 | 90 | 92 |
按照题目要求,先计算每位选手的平均分:
- 选手1:(95+92+90+88+87+85+84+82-95-82)/6=88.5
- 选手2:(90+88+85+82+80+78+75+72-90-72)/6=81
- 选手3:(80+82+83+85+87+88+90+92-92-80)/6=86
- 选手4:(85+87+88+90+92+93+94+95-95-85)/6=90.5
- 选手5:(75+78+80+82+85+87+88+90-90-75)/6=83
- 选手6:(88+85+82+80+78+75+72+70-88-70)/6=78
- 选手7:(82+83+85+87+88+90+92+93-93-82)/6=87
- 选手8:(78+80+82+85+87+88+90+92-92-78)/6=85
然后按照平均分由高到低的顺序输出选手编号、选手姓名、平均分:
| 选手编号 | 选手姓名 | 平均分 |
| -------- | -------- | ------ |
| 4 | D | 90.5 |
| 7 | G | 87 |
| 1 | A | 88.5 |
| 3 | C | 86 |
| 5 | E | 83 |
| 8 | H | 85 |
| 2 | B | 81 |
| 6 | F | 78 |
因此,按照题目要求输出的结果为:
4 D 90.5
7 G 87
1 A 88.5
3 C 86
5 E 83
8 H 85
2 B 81
6 F 78
阅读全文