Python:模拟决赛现场最终成绩的计算过程

问题描述:

编写代码,模拟决赛现场最终成绩的计算过程。至少有3个评委,打分规则为删除最高分和最低分之后计算剩余分数的平均分。

基本思路:

首先使用一个循环要求用户输入评委人数(应大于2,至少有3个评委),然后再使用一个循环输入每个评委的打分,在两个循环中都使用了异常处理结构来保证用户输入的是整数,最后删除最高分和最低分,并计算剩余分数的平均分。

完整代码:

while True:
    try:
        n=int(input('请输入评委人数:'))
        if n<=2:
            print('评委人数太少,必须多于两个人')
        else:
            break
    except:
        pass
    
scores=[]

for i in range(n):
    while True:
        try:
            score=input("请输入第{0}个评委的分数".format(i+1))
            score=float(score)
            assert 0<=score<=100
            scores.append(score)
            break
        except:  
            print("分数错误")
highest=max(scores)
lowest=min(scores)
scores.remove(highest)
scores.remove(lowest)
final=round(sum(scores)/len(scores),2)
formatter='去掉一个最高分{0}去掉一个最低分{1}最终得分是{2}'
print(formatter.format(highest,lowest,final))

错误的产生:

score=input(“请输入第{0}个评委的分数”.format(i+1))中括号内的“.”误写成了“,”,导致的结果为:评委人数为1正常,评委人数为2正常,当评委人数大于2后,运行结果“分数错误”的死循环,导致卡顿甚至是强制退出。

你可能感兴趣的:(Python代码,python)