努力学习python的小谢 2022-12-16 13:02 采纳率: 60%
浏览 37
已结题

Python 中遇到的问题,求解

img

img


该函数现在完成成这样,但是输入除了A到O以外的任何元素都会报错,如果想让他不报错并提示要求,如何在input前加try呢

  • 写回答

1条回答 默认 最新

  • a5156520 2022-12-16 13:31
    关注

    在32行那个if后面加个else分支来处理输入的不是A到O之间的值,可以在这个else分支用个continue 继续循环再次获取学生姓名即可,修改如下:

    参考链接:
    round在python是什么意思_细说python中的round()方法_weixin_39998903的博客-CSDN博客

    import random
    import time
    
    random.seed(1)
    scores=[random.randint(35,100) for _ in range(15)]
    students=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O']
    print(scores)
    students_scores=dict(zip(students,scores))
    print(students_scores)
    
    List = sorted(students_scores.items(),key=lambda x:x[1],reverse=True)
    to_dict=dict(List)
    print('成绩排列:',to_dict)
    
    average = round(sum(scores)/len(scores),2)
    
    while True:
        name=input("请输入要查询的学生姓名:")
        if name in students_scores.keys():
            mean=0
        else:#  当输入的学生姓名不是A到O之间的字母,则继续循环再次获取学生姓名
            continue
        for student in students_scores:
            mean+=students_scores[student]
    
        mean/=len(students_scores)
        if students_scores[name]>mean:
            print(f'{name}同学的分数是{students_scores[name]},该学生的成绩属于上等水平')
        elif students_scores[name]==mean:
            print(f'{name}同学的分数是{students_scores[name]},该学生的成绩属于中等水平')
        else:
            print(f'{name}同学的分数是{students_scores[name]},该学生的成绩属于下等水平')
        print("全班平均分为",mean)    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 创建了问题 12月16日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装