今天学习用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)
运行程序,查看结果 大概就是这样了,会的小伙伴还可以给它们拍个名。
结束语:有什么问题留言,帖子们一起探讨。这样总比蒙在鼓里好,现在小伙伴们快去试试吧!!!
|