今天学习用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)
运行程序,查看结果

大概就是这样了,会的小伙伴还可以给它们拍个名。
本文通过三个版本的Python代码,从原版到进阶版,逐步解决计算歌手得分时可能出现的错误,确保评分准确无误,并能处理多人得分情况。鼓励读者实践并探讨可能的问题。
1万+

被折叠的 条评论
为什么被折叠?



