当前位置 : 主页 > 编程语言 > python >

python学习笔记|PTA异常处理练习

来源:互联网 收集:自由互联 发布时间:2022-06-15
默认情况下,系统检测到错误后会终止程序。 一个try语句可以对应一个except子句。 异常处理结构中的finally块中代码仍然有可能出错从而再次引发异常。 带有else子句的异常处理结构,
  • 默认情况下,系统检测到错误后会终止程序。
  • 一个try语句可以对应一个except子句。
  • 异常处理结构中的finally块中代码仍然有可能出错从而再次引发异常。
  • 带有else子句的异常处理结构,如果不发生异常则执行else子句中的代码。
  • 在异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。
  • try-except-finally异常处理结构中,当异常发生时,finally语句内容将会被执行。
  • 如果except子句没有指明任何异常类型,则表示捕捉所有的异常。
  • 无论程序是否捕获到异常,一定会执行finally语句。
  • 所有的except子句一定在else和finally的前面。
  • 在Python中,带有else子句的异常处理结构,如果不发生异常,则执行else子句中的代码。
  • 在Python异常处理结构中,不论是否发生异常,finally子句中的代码总是会执行的。
  • try-except通常用于检查用户输入的合法性、文件打开或网络获取的成功性等
  • 程序代码中产生异常,不便于处理时,抛出异常

    编程题

    数据异常处理

    输入一组数据,求平均值。要求:数据正确,正确计算。数据有错误,能异常处理,输出错误信息,不进行计算。输入格式:行1:n代表输入的数据个数接下来n行表示输入的数据输出格式:输入数据合法正确,则输出正确,并输出平均值。输入数据不正确,如果数值错误,输出数值错误除0错误,输出除0错误,n不能等0不管有没有异常,都输出程序结束

    try: n=int(input()) sum=0 for i in range(n): a=float(input()) sum=sum+a avg=sum/n except ValueError: print("数值错误") except ZeroDivisionError: print("除0错误,n不能等0") else: print("正确") print("avg={:.2f}".format(avg)) finally: print("程序结束")

    查成绩

    从键盘输入一个学生所有课程的成绩,输入格式为”课程名:成绩“,每门课占一行,以空行结束。随后提示”请输入要查询的课程:“,用户从键盘输入课程名,查询并输出该课程的成绩,要求进行异常处理,对不存在的课程进行捕捉处理。

  • 输入格式:输入学生所有课程的成绩,每门课占一行,格式为”课程名:成绩“,以空行结束在提示后输入课程名

    输出格式:如果课程存在,直接输出成绩,否则提示”没有该门课程“

    dic={} while True: try: a=input() m,n=map(str,a.split(":")) dic[m]=n except: break b=input("请输入要查询的课程:\n") if b in dic.keys(): print(dic[b]) else: print("没有该门课程")

    下标异常

    输入一个非空字符串和一个索引值,输出字符串中,该索引值对应的字符。若发现异常,则输出“输入下标有误”

    输入格式:输入一个非空的字符串,再输入一个索引值(Python中可以是正向索引,也可以是反向索引)。

    输出格式:输出字符串中,该索引值对应的字符。若发现异常(如输入的索引值太大或太小,超出字符串的索引值范围;如输入的索引值为非整数等),则输出“输入下标有误”

    a=str(input()) try: b=int(input()) print(a[b]) except: print("输入下标有误")

    两种异常捕获小程序

    本题目要求读入2个整数a和b,然后输出它们的商 ,即a/b的值,正常输出结果并保留2位小数,如果出现输入非数值型数据,则捕获异常NameError,并输出the input is not numerical,如果输入的除数b为0,则捕获异常ZeroDivisionError,输出zero division error

    输入格式:在2行中输入2个数据。

    输出格式:在一行中输出a/b的值,保留2位小数,若存在异常则捕获输出相应信息。

    try: a=int(input()) b=int(input()) s=a/b except ValueError: print('the input is not numerical') except ZeroDivisionError: print('zero division error') else: print("{:.2f}".format(s))
    上一篇:MongoDB需要掌握的几个概念
    下一篇:没有了
    网友评论