Python计算歌手得分数案例

本文通过三个版本的Python代码,从原版到进阶版,逐步解决计算歌手得分时可能出现的错误,确保评分准确无误,并能处理多人得分情况。鼓励读者实践并探讨可能的问题。


今天学习用Python打印歌手得分和平均数。
首先,写出代码

原版

scores = []
for i in range(10):
    score = float(input('scores[' + str(i) + ']= '))
    scores.append(score)
    
average = (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)

print('歌手最终得分:{:.2f}'.format(average))

运行,查看结果
在这里插入图片描述
这里我们细心的小伙伴会发现,为什么还会出现13呢?难道是裁判眼神不好吗?这证明我们的代码还有漏洞,让我们来修改一下。

修改版

scores = []
for i in range(10):
    score = float(input('scores[' + str(i) + ']= '))
    scores.append(score)
    while True:
        if score < 0 or score > 10:
            print('超出范围请重新输入0-10的得分')
            score = float(input('scores[' + str(i) + ']= '))
        else:
            break
average = (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)

print('歌手最终得分:{:.2f}'.format(average))

经过我们的修改应该是没有问题了。运行看结果,
在这里插入图片描述
这样就不会出现眼神不好乱打分的请况,专治各种眼神不好。由上可知,我们在改进一下,让它可以计算多人的分数。先写代码,

进阶版

xt = []
for j in range(2):
    scores = []
    print('第' + str(j + 1) + '位歌手')
    for i in range(5):
        score = float(input('scores[' + str(i) + ']= '))
        scores.append(score)
        while True:
            if score < 0 or score > 10:
                print('超出范围请重新输入0-10的得分')
                score = float(input('scores[' + str(i) + ']= '))
            else:
                break

    average = (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)
    xt.append(average)
    print('歌手最终得分:{:.2f}'.format(average))
print(xt)

运行程序,查看结果
在这里插入图片描述
大概就是这样了,会的小伙伴还可以给它们拍个名。

结束语:有什么问题留言,帖子们一起探讨。这样总比蒙在鼓里好,现在小伙伴们快去试试吧!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值