青年歌手大奖赛一共有十名评委,用户输入十名评委的成绩到列表,给出用户的平均成绩

青年歌手大奖赛一共有十名评委,用户输入十名评委的成绩到列表,给出用户的平均成绩,
其中平均成绩的计算方法为:去掉一个最高成绩,去掉一个最低成绩,然后计算平均值。
提示:c=列表a.index(b) c 表示b 在列表a 中的位置即索引下标;计算均值可以用求和除以
有效人数的方式计算,平均分输出时保留1 位小数;
要求:在算法中尽量不使用循环,输入输出可以使用循环;
注意:标*的为最高分和最低分。
如输入:
9 6 9.5 8 9.9 9 8 7 9.9 6
输出格式如下:
评委1:9 分
*评委2:6 分
评委3:9.5 分
评委4:8 分
*评委5:9.9 分
评委6:9 分
评委7:8 分
评委8:7 分
评委9:9.9 分
评委10:6 分
该选手平均得分:xx 分

score_list = list(input().split())  # 输入一串数字,通过空格分隔,此时列表内元素格式为字符串
score_list = [float(score_list[i]) for i in range(len(score_list))]  # 将列表内元素格式转换为浮点数
max_sore = score_list.index(max(score_list))     # 取得最大值的索引下标
min_sore = score_list.index(min(score_list))     # 取得最小值的索引下标


def delete_extra_zero(n):
    """删除小数点后多余的0"""
    n = '{:g}'.format(n)
    n = float(n) if '.' in n else int(n)  # 含小数点转float否则int
    return n


i_index = 0  # 获得遍历列表时的索引下标值
for i in score_list:
    """输出各位评委打分"""
    end = delete_extra_zero(i)  # 删除小数点后多余的0
    if i_index == max_sore or i_index == min_sore:
        print("*评委"+str(i_index+1)+":"+str(end)+" 分")
    else:
        print("评委"+str(i_index+1)+":"+str(end)+" 分")  # 以上条件语句用于判断首个给出最高分和最低分的评委
    i_index = i_index + 1  # 下一个索引下标值
score_list.pop(max_sore)    # 删除最大值
score_list.pop(min_sore)    # 删除最小值
sum1 = 0  # 得分求和
for score in score_list:
    """去除最高分和最低分后求和"""
    sum1 = sum1+score
score_end = round(sum1/len(score_list), 1)  # 求得平均得分,保留一位小数
print("该选手平均得分:"+str(delete_extra_zero(score_end))+" 分")

这是老师留的第一次作业,记录一下。

如有优化建议,烦请不吝赐教。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值