2、为丰富校园文化生活,学校拟组织一场歌手大赛,从参赛选手中选拔出十名相对突出的学生,授予“校园十大歌手”称号。比赛之中设置有评委组,每名选手演唱完毕之后会由评委组的十名评委打分。为保证比赛公平公正,防止作弊和恶意打分,计算得分时会先去掉最高分和最低分,再计算平均分。用for循环
时间: 2024-12-15 19:30:56 浏览: 9
全国大学生GIS应用技能大赛试题第8届到第10届试题数据
5星 · 资源好评率100%
为了确保歌手大赛评分的公正性,我们可以使用Python的for循环来实现这个过程。首先,我们需要一个数据结构,比如列表,来存储每个评委对每位选手的分数。这里是一个简单的步骤描述:
1. 定义一个包含所有选手分数的二维列表,每一行代表一位选手,每列对应一名评委的评分。
```python
scores = [
[评委1_1, 评委1_2, ..., 评委1_n], # 选手1 的各评委分数
[评委2_1, 评委2_2, ..., 评委2_n], # 选手2 的各评委分数
...,
[评委10_1, 评委10_2, ..., 评委10_n] # 选手10 的各评委分数
]
```
2. 使用for循环遍历每个选手的所有评委评分。对于每名选手,执行以下操作:
a. 找到最高分和最低分,可以使用`max()`和`min()`函数。
b. 列表推导式去除最高分和最低分,只保留中间8个分数。
c. 计算剩余分数的平均值,可以用`sum()`加总除以8得到。
```python
剔除非最高最低分的平均分列表 = [
(sum(scores[i][1:-1]) / (len(scores[i][1:-1]))) for i in range(len(scores))
]
# 最终结果是每位选手去掉了最高分和最低分后的平均得分
ten_best_singers_scores = sorted(剔除非最高最低分的平均分列表, reverse=True)[:10]
```
3. 排序并选择前十个得分最高的选手作为“校园十大歌手”。
阅读全文