'''
任务:学校举行校园歌手大赛,请了N个评委给选手打分,你负责设计一个程序:依次输入N个评委的评分,去掉1个最高分和1个最低分,以其余平均分作为选手最终得分。
编程要求
分数为连续输入的方式,相邻两个数之间用空格作为分隔符都可以识别。只要输入不合法,就提示重新输入。
输入合法的条件是:(A)输入的数据都是数值(B)位于区间(0,10]上的数值个数大于或等于5。
将最终输入的有效数值显示出来,基于最终的有效评分进行计算:去掉1个最高、1个最低分,求剩下的平均分作为最终得分。
最终得分保留小数点后3位有效数字。
尽量以最简洁的代码完成任务。
'''
while True:
s=input('input score:')
seps=', '
for sep in seps:
s=s.replace(sep,' ')
s=s.split()
try:
data=list(map(float,s))
data=[num for num in data if 0<num<=10]
if len(data)>=5:
break
except:
continue
print('valid scores:'+str(data))
max_score=max(data)
min_score=min(data)
avg_score=(sum(data)-max_score-min_score)/(len(data)-2)
print('max={0},min={1},score={2:.3f}'.format(max_score,min_score,avg_score))
回复一下评论说的问题:
大家再试一下哈。
还有另一个版本的歌手大赛评委打分:
版权归原作者 晏清。 所有, 如有侵权,请联系我们删除。