博客
关于我
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/

    你可能感兴趣的文章
    Mysql学习总结(70)——MySQL 优化实施方案
    查看>>
    Mysql学习总结(71)——MySQL 重复记录查询与删除总结
    查看>>
    Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
    查看>>
    Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
    查看>>
    Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
    查看>>
    Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
    查看>>
    Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
    查看>>
    Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
    查看>>
    Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
    查看>>
    Mysql学习总结(78)——MySQL各版本差异整理
    查看>>
    Mysql学习总结(79)——MySQL常用函数总结
    查看>>
    Mysql学习总结(7)——MySql索引原理与使用大全
    查看>>
    Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
    查看>>
    Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
    查看>>
    Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
    查看>>
    Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
    查看>>
    Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
    查看>>
    Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
    查看>>
    Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
    查看>>
    Mysql学习总结(9)——MySql视图原理讲解与使用大全
    查看>>