Python-异常处理练习

文章讲述了如何在模拟决赛现场计算最终成绩,包括获取评委人数,验证分数在0-10范围内,处理异常,去除最高和最低分后计算平均得分的过程。
部署运行你感兴趣的模型镜像

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

**要求:**输入的评委人数在3人以上,评委分数须0-10之间,利用异常进行处理,并计算最终该选手的平均得分(去掉一个最高、最低分)

from collections import defaultdict
while True:
#while True直接告诉你判断的结果,会一直执行循环里的语句
#即意思是要一直进行loop(死循环),通常while true 循环中会加入break条件判断用以在循环内部的某个条件达成时终止循环。
    try:
        person1 = int(input('请输入评委人数:'))
        assert person1 > 3,'评委人数必须在3人以上'
    except Exception as e:   #统一处理
        print(e)
    else:
        break
#break只能用于while循环或者for循环中
#但是如果if条件语句是套在while循环或者for循环内部的,则break可以使用

score = defaultdict(float)
for i in range(0,person1):
    while True:   #这个While循环用来保证用户必须输入0到10之间的数字
        try:
            get = eval(input('打分为:'))  #把字符串转换成实数
            if type(get) not in [int,float]:
                raise Exception
            assert 0.0<= get <=10.0,'分数须在0-10分之间'
            #若是表达式不成立,则会输出data信息
        except Exception as e:
            print(e)
        else:
            score[i+1] = get
            break
       #如果数据合规,则跳出while循环,继续输入下一个评委的分数(进入for循环)
highest = max(score.values())
lowest = min(score.values())
for k,v in score.items():
    print(f'第{k}个评委的分数为:{v}')
finalScore = round(sum(score)-highest-lowest/person1-2,2)
print(f'最高得分为{highest},最低得分为{lowest},平均得分为{finalScore}')

运行结果如下:
如图

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值