为丰富校园文化生活学习组织一场歌手比赛每名选手由八位评委打分计算时会先去掉最高分和最低分再计算平均分。1根据要求计算平均分并输出 2输出此时的最高分和最低分3代码解释说明不少于20
- 计算平均分并输出
假设有5名选手,每位评委都给出了分数,则可以将这些分数存储在一个二维数组中,如下所示:
scores = [[90, 85, 92, 88, 87, 89, 91, 86],
[88, 90, 87, 89, 85, 92, 91, 86],
[89, 92, 86, 88, 87, 90, 91, 85],
[87, 90, 88, 86, 92, 91, 85, 89],
[90, 85, 88, 91, 89, 87, 92, 86]]
其中,第一行代表第一位选手的分数,第一列代表第一位评委的打分。
为了计算每名选手的平均分,需要去掉最高分和最低分,并计算剩余分数的平均值。
for i in range(len(scores)):
# 去掉最高分和最低分
scores[i].remove(max(scores[i]))
scores[i].remove(min(scores[i]))
# 计算平均分
avg_score = sum(scores[i]) / len(scores[i])
print("选手{}的平均分为:{:.2f}".format(i+1, avg_score))
此处使用了range(len(scores))来遍历每位选手,使用remove()方法去掉最高分和最低分,使用sum()函数和len()函数计算平均分。其中,{:.2f}表示输出的浮点数保留两位小数。
- 输出此时的最高分和最低分
在计算每名选手的平均分时,已经去掉了最高分和最低分,因此可以通过找出每个评委的最高分和最低分来得出此时的最高分和最低分。
max_scores = []
min_scores = []
for j in range(len(scores[0])):
column = [scores[i][j] for i in range(len(scores))]
max_scores.append(max(column))
min_scores.append(min(column))
print("此时的最高分为:{},最低分为:{}".format(max(max_scores), min(min_scores)))
此处使用了列表推导式来获取每个评委的打分,使用max()函数和min()函数找出最高分和最低分,最后输出即可。
- 代码解释说明不少于20%
本题的难点在于去掉最高分和最低分后计算平均分。在代码实现时,可以使用remove()方法来去掉最高分和最低分,使用sum()函数和len()函数计算平均分。此外,还需要注意输出的格式,需要保留两位小数。在找出此时的最高分和最低分时,可以使用列表推导式来获取每个评委的打分,使用max()函数和min()函数找出最高分和最低分
原文地址: https://www.cveoy.top/t/topic/g7FZ 著作权归作者所有。请勿转载和采集!