Python 模拟决赛现场最终成绩计算过程 输入数据验证

本文介绍了如何使用Python模拟决赛现场的评分过程,包括输入数据验证和最终成绩计算。用户需输入评委人数n(大于3)和每位选手的姓名及评委打分。程序会去除最高分和最低分k个,保留其余分数计算选手的最终得分。通过try-except处理非法输入,确保数据合规。同时,利用列表解析式和all()函数检查分数范围,以及字典解析式实现按得分逆序输出选手成绩。
摘要由CSDN通过智能技术生成

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

键盘输入:k,n (n>2k), 若不合法,重新输入。

  1. 首先输入大于3的整数n作为评委人数,输入每个选手的姓名,然后依次输入每个评委的打分,要求每个分数都介于0~100。

  2. 输入完所有的评委打分后,去掉一个k最高分,去掉一个k最低分,剩余分数的评价分即为该选手的最终得分。

  3. 最后打印输出各选手的得分情况,并以逆序输出。

  • 本程序的核心在于使用try-except做输入数据的检验,只有当输入的数据满足条件才会退出while True循环,当数据不符合规范时便会raise一个异常,让用户再次输入,直至输入正确
  • 在判断输入的分数是否介于0~100时,使用了[x >= 0 and x <= 100 for x in scorelist]列表解析式得到各元素是否符合的布尔列表,再通过all()判断是都全符合:如果元祖或列表中所有元素不为0、空(’’)、False 即所有元素满足0<=x<=100返回True,否则返回False。
  • 将选手名作为键,最终得分作为值放入字典中,再通过字典解析式进行以值为准的逆序排序。
while True:
    try:
        # 先输入 k表示选手个数
        k = int(input('请输入选手个数'))
        if k < 1:
            raise ValueError("选手个数非法")
        # 再输入 n表示评委人数
        n = int(input('请输入评委人数'))
        if n <= 3
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SK Primin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值