Python程序设计基础 课件 第7章 程序的异常处理.pptx
第7章程序的异常处理python程序设计基础教程
7.1程序的错误和异常编程时常常会出现三种错误包括语法错误、运行时错误、逻辑错误(1)语法错误:是指不遵循语言的语法结构引起的错误(程序无法正常编译/运行遗漏了某些必要的符号(冒号、逗号或括号)关键字拼写错误缩进不正确(2)运行时错误:是指程序在运行过程中遇到错误,导致意外退出尝试访问一个没有申明的变量。(3)逻辑错误:是指程序的执行结果与预期不符表达式可能不会按照期望的顺序进行运算,从而产生不正确的结果。
7.1程序的错误和异常异常含义类型SyntaxError?使用关键词作为变量名,会抛出该异常。在if、for、while等语句的头语句后面忘记写冒号,会抛出该异常。字符串缺引号,会抛出该异常。开放操作符(、{或[没有关闭,使Python继续将下一行作为当前语句的一部分,会抛出该异常。在判断条件中使用=代替==,会抛出该异常。混合使用tabs和空格键作为缩进,会抛出该异常。语法错误NameError?使用当前环境中不存在的变量。另外,局部变量是本地的,不能被在定义的函数之外引用,会抛出该异常。运行时错误TypeError?数据类型不匹配,比如:对字符串,列表或元组使用非整数索引,会抛出该异常。格式字符串中的项目与输出值之间存在不匹配,数量的不匹配和无效的转换,会抛出该异常。传递给函数或方法的参数数量错误,会抛出该异常。KeyError请求一个不存在的字典关键字,会抛出该异常。AttributeError尝试访问未知的对象属性,会抛出该异常。ZeroDivisionError除数为0,会抛出该异常。FileNotFoundError打开的文件不存在,会抛出该异常。IOError输入输出错误(比如你要读的文件不存在),会抛出该异常。解释器没有输出错误信息运算符优先级考虑不周,会抛出该异常。变量名使用不正确,会抛出该异常。语句块缩进层次不对,会抛出该异常。布尔表达式出错,会抛出该异常。逻辑错误
7.1程序的错误和异常写一个除法方法。defGetdiv(m,n):returnm/nprint(Getdiv(6,0))print(Getdiv(6,3))ZeroDivisionError:divisionbyzerodefGetdiv(m,n):ifn==0:return除数不能为0 else:returnm/n
7.2捕获异常针对异常的处理方法如下:try: 执行语句1#运行try语句块,并试图捕获异常except异常1: 执行语句2
7.2捕获异常针对异常的处理方法如下:try: 执行语句1#运行try语句块,并试图捕获异常except异常1: 执行语句2
7.2捕获异常打开一个文件名为test.txt的文件,在该文件中的内容写入内容。try:withopen(test.txt,r+)asf:f.write(这是一个测试文件,用于测试异常!!)exceptIOError:print(Error:没有找到文件或读取文件失败)
7.2捕获异常当可能发生多种异常时,可以使用多个except语句捕获异常try: 执行语句1#运行try语句块,并试图捕获异常except异常1: 执行语句2#如果name1异常发生,那么执行该语句块。except异常2asvariable: 执行语句3#如果name2异常发生,那么执行该语句块,并把异常实例命名为variableexcept: 执行语句4#发生了以上所有列出的异常之外的异常,执行该语句块。
7.2捕获异常判断下列程序可能发生的异常。try:s=eval(input(s=))s=5/sprint(5/s值为:,s)exceptZeroDivisionError:print(除数不能为0)exceptNameErrorase:print(变量名错误)except:print(语法错误)s=25/s值为:2.5?s=0除数不能为0?s=a变量名错误?s=,,,语法错误
7.2捕获异常Python制定了专门的try...except...finally...异常处理语句try: 执行语句1#运行try语句块,并试图捕获异常except异常1: 执行语句2#如果异常1发生,那么执行该语句块。except异常2asvariable: 执行语句3#如果异常2发生,那么执行该语句块,并把异常实例命名为variableexcept: 执行语句4#发生了以上