默认情况下,系统检测到错误后会终止程序。 一个try语句可以对应一个except子句。 异常处理结构中的finally块中代码仍然有可能出错从而再次引发异常。 带有else子句的异常处理结构,
编程题
数据异常处理
输入一组数据,求平均值。要求:数据正确,正确计算。数据有错误,能异常处理,输出错误信息,不进行计算。输入格式:行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))