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

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

键盘输入: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

你可能感兴趣的:(python,开发语言,后端)