博客
关于我
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 INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql innodb通过使用mvcc来实现可重复读
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    Mysql join原理
    查看>>
    mysql order by多个字段排序
    查看>>
    MySQL Order By实现原理分析和Filesort优化
    查看>>
    mysql problems
    查看>>
    mysql replace first,MySQL中处理各种重复的一些方法
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    Mysql Row_Format 参数讲解
    查看>>
    mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
    查看>>
    MySQL Server 5.5安装记录
    查看>>
    mysql slave 停了_slave 停止。求解决方法
    查看>>
    MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
    查看>>
    mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
    查看>>
    mysql Timestamp时间隔了8小时
    查看>>
    Mysql tinyint(1)与tinyint(4)的区别
    查看>>
    mysql union orderby 无效
    查看>>
    mysql where中如何判断不为空
    查看>>