博客
关于我
python 异常处理编程 编写程序,根据用户输入[0,100]范围内的分数,判断该分数是否及格。要考虑各种输入情况!
阅读量:497 次
发布时间:2019-03-06

本文共 1389 字,大约阅读时间需要 4 分钟。

针对这个分数判断及格的问题,我们可以编写一个基础的错误处理程序来避免各种边缘情况的出现。这个程序的主要目标是让用户输入有效的数字,然后根据设定的范围判断及格等级。

首先,我们可以设计一个循环结构,让用户有多次机会输入分数,如果输入了无效的数据,则会提示错误信息并让用户重新输入。这样可以确保程序的健壮性。

在处理输入的过程中,我们需要考虑到以下几点:

  • 用户可能输入超出范围的数字
  • 用户可能输入非数字字符(如字母或符号)
  • 用户可能输入大量的输入字符,导致输入溢出
  • 针对上述问题,我们可以在程序中使用try-except块来处理异常情况,并根据不同的异常类型给予不同的提示信息。这样可以让用户在输入错误时更清楚地知道问题所在。

    还需要注意的就是,当用户输入的数字符号时,解析错误也可能会出现,因此我们需要针对这种情况进行处理,并给予相应的提示。

    我们的程序逻辑可以分成以下几个步骤:

  • 进入主循环
  • 在循环内提示用户输入分数
  • 使用eval函数读取用户输入并转换成数值
  • 如果转换成功,检查分数是否在[0,100]范围内
  • 如果在范围内,判断及格等级
  • 如果不在范围内,提示超出范围并重新开始循环
  • 如果在转换过程中出现错误,提示错误信息并重新开始循环
  • 接下来,我将按照上述逻辑编写一个Python程序,并进行相应的错误处理和及格判断。

    示例代码:

    while True:    #提示用户输入分数    print("请在0到100之间输入您的分数:")    #读取用户输入并转换为数值    try:        score = eval(input())  # 使用eval来处理字符串转换    except:        print("输入错误,请重新输入!")  #处理所有不预期的异常        continue  # 继续循环,提示用户重新输入        #检查是否是数字字符    try:        assert isinstance(score, (int, float))    except:        print("请不要输入非数字或非小数值格式!")        continue        #检查分数范围    if score < 0 or score > 100:        print("分数超出了范围,请重新输入!")        continue    else:        #判断及格等级        if score >= 60:            print("及格!")        else:            print("不及格!")        break  #退出循环

    示例运行结果:

    用户输入:输入正确的情况下,程序会判断分数是否及格。输入错误的情况下,程序会给予相应的错误提示,并重新进入循环让用户重新输入。

    分数及格标准:设置及格线为60分及以上。如果输入的分数在这个范围内,则会输出及格!,否则会输出不及格!。

    程序结构:

    程序结构比较基础,只包含了一个小范围的错误处理和及格判断功能。对于更复杂的错误处理和判断条件,可以在这一框架的基础上进行扩展和完善。

    这样的判断过程比较简单直接,但是可以满足大部分常见的使用场景。对于更复杂的分数计算或者处理,可以在这个基础上进行扩展。

    转载地址:http://ypqdz.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置实例-动静分离实例:搭建静态资源服务器
    查看>>
    Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
    查看>>
    Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    Nginx配置文件nginx.conf中文详解(总结)
    查看>>
    Nginx配置自带的stub状态实现活动监控指标
    查看>>
    nginx配置详解、端口重定向和504
    查看>>
    Nginx配置负载均衡到后台网关集群
    查看>>
    Nginx配置限流,技能拉满!
    查看>>
    Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias
    查看>>
    Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
    查看>>
    Nginx:NginxConfig可视化配置工具安装
    查看>>
    ngModelController
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    ngrok内网穿透可以实现资源共享吗?快解析更加简洁
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>