Python 代码实现歌手比赛成绩计算:去掉最高最低分求平均分

本代码使用 Python 语言实现歌手比赛成绩计算,根据要求先去掉最高分和最低分,再计算平均分。并输出每位选手的平均分、最高分和最低分。

代码如下:

scores = []  # 存放所有选手的成绩

# 输入每位选手的成绩
while True:
    score_str = input('请输入选手的成绩(用逗号分隔):')
    score_list = score_str.split(',')
    if len(score_list) != 8:
        print('每位选手需要8个评委打分,请重新输入。')
        continue
    try:
        score_list = [float(score) for score in score_list]
    except ValueError:
        print('输入的成绩格式有误,请重新输入。')
        continue
    scores.append(score_list)
    if input('是否继续输入下一位选手的成绩?(输入Y继续,其他键退出)').lower() != 'y':
        break

# 计算每位选手的平均分
averages = []
for score_list in scores:
    score_list.sort()  # 先将成绩从低到高排序
    score_list = score_list[1:-1]  # 去掉最高分和最低分
    average = sum(score_list) / len(score_list)
    averages.append(average)

# 输出每位选手的平均分
for i, average in enumerate(averages):
    print('第{}位选手的平均分为:{:.2f}'.format(i+1, average))

# 输出最高分和最低分
max_score = max(averages)
min_score = min(averages)
print('最高分为:{:.2f},最低分为:{:.2f}'.format(max_score, min_score))

代码解释说明:

  1. 首先定义一个空列表 scores,用于存放所有选手的成绩。
  2. 然后使用一个 while 循环,不断输入每位选手的成绩。每次输入的成绩是一个字符串,需要使用 split() 方法将其分割成一个列表,再使用 float() 将列表中的每个元素转换为浮点数。如果输入的成绩数量不正确或格式有误,会提示用户重新输入。如果用户选择退出输入,循环终止。
  3. 遍历 scores 列表中的每个成绩列表,先将其从低到高排序,再去掉最高分和最低分,最后计算平均分并添加到一个新的列表 averages 中。
  4. 遍历 averages 列表,输出每位选手的平均分。
  5. 使用 max() 和 min() 函数分别找到 averages 中的最高分和最低分,并输出。注意,在计算平均分时已经去掉了最高分和最低分,因此这里不需要再做处理。

总结

本代码实现了歌手比赛成绩的计算,通过去掉最高分和最低分,并计算平均分,可以更准确地反映选手的真实水平。同时,代码包含详细的注释,方便理解和学习。


原文地址: https://www.cveoy.top/t/topic/oBhd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录