Python程序设计基础 Chap09 异常.pdf

您所在的位置:网站首页 python基础知识pdf Python程序设计基础 Chap09 异常.pdf

Python程序设计基础 Chap09 异常.pdf

2023-03-25 06:10| 来源: 网络整理| 查看: 265

《Python程序设计基础 Chap09 异常.pdf》由会员分享,可在线阅读,更多相关《Python程序设计基础 Chap09 异常.pdf(15页珍藏版)》请在咨信网上搜索。

1、内参提纲9.1文件和文件路卷9.2文件的读写9.3文件定住O9.4文件相关函数及综合应用9.5CSV文件操作)a.引例在前面的上机实践过程中,读者可能遇到过很多错误或 异常。错误一般指语法错误,通常是由于我们没有正确 掌握语法或输入代码过程中出错而造成的。这需要编程 者自己尽力在编码和输入过程中避免。异常即是一个事 件。该事件会在程序执行过程中发生,影响了程序的正 常执行。下面的代码根据用户输入的身高和体重数据计算用户的体重系数BMI。height=float(input(enter your height(m):)weight=float(input(enter your weight(kg

2、):)bmi=round(weight/(height*height),2)print(your BMI is:,bmi)程序要求输入合理的数据,一旦用户误将身高数据输入为0,则程序会出 现异常突然退出,并伴随一堆错误信息,如下所示:Traceback(most recent call last):File C:/Users/ws/PycharmProjects/untitled1/ws.py,line 3,inbmi=round(weight/(height*height),2)ZeroDivisionError:float division by zero9J错误和异常9.1.1语法错误语

3、法错误,也称作解析错误,也许是学习Python过程 中最常见的。下面的代码中print有拼写错误。prin(”hello,world”)Traceback(most recent call last):File Hn,line 1,in prin(hello5worldn)NameError:name prin is not defined语法分析器指出错误行为第1行,因为print少了一个 O错误会输出文件名和行号,所以如果是从脚本输入的 你就知道去哪里检查错误了。这类错误需要编程者自己不断提高编辑和编程水平来减 少发生的频率,而不能指望Python系统帮我们解决。9J错误和异常 9.1.2

4、 异常即使一条语句或表达式在语法上是正确的,当试图执行它时也可能会引发错误 O运行期检测到的错误即为异常。20*(10/0)Traceback(most recent call last):File,line 1,in 20*(10/0)ZeroDivisionError:division by zero 以上代码出现除数为0的异常。20+mycar Traceback(most recent call last):File,line 1,in 20+mycar NameError:name mycar is not defined9J错误和异常异常名称描述BaseException所有异常的

5、基类Keyboardinterrupt用户中断执行(通常是输入AC)Exception常规错误的基类ArithmeticError所有数值计算错误的基类FloatingPointError浮点计算错误OverflowError数值运算超出最大限制ZeroDivisionError除(或取模)零(所有数据类型)lOError输入/输出操作失败IndexError序列中没有此索引(index)KeyError映射中没有这个键MemoryError内存溢出错误(对于Python解释器不是致命的)NameError未声明/初始化对象(没有属性)9.2异常 9.2异常处理:为了使程序在发生异常时不崩溃,

6、编程者需要按 特定语法格式处理异常,使得程序可以继续运行 O比如一个程序要求用户输入年龄,显然程序期 待的是一个数字,但如果用户输入了“ab”这样的 字符串值(用户很容易输入类似的数据),程序 若没有处理异常的代码就会退出运行,提示用户 发生了“ValueErrod异常。程序这样轻易就崩溃,将会使用户非常恼火。合理的处理方式是,当 异常发生时程序要处理它,并提示用户输入正确 格式的数字。9.2异常处理一X9.2,1异常处理语法异常处理语法结构如下:try:except:except:except:#上一句except分支不指定任何类型的异常,表示可以匹配任何异常类型。else:finally:

7、9.2异常处理 9.2.2常见异常处理示例下面代码处理打开文件异常。try:fh=open(testfile,r)mystr=fh.read(20)except lOError:print(“没有找到文件或读取文件失败)else:print(mystr)fh.close()执行以上代码,如果当前目录下不存在testfile这个文件,则程序产生异常,此异常被excep lOError分支捕获,程序将输出:没有找到文件或读取文件失败。如果 文件存在,则程序会顺利打开文件并执行else分支,输 出文件中的前20个字符,然后关闭文件,程序退出。9.3抛出异常和自定义异常 9.3.1如何抛出异常 当程序

8、出现错误时,Python会自动引发异常,也可以 通过raise显式地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。换句话说,raise语句允 许程序员在任何必要的时候强制抛出一个指定的异常,而不必等Python引发。语法格式如下:raise exceptionName即只要在raise关键字后跟上一个异常类型名,就可立 即引发一个异常,改变程序的执行路径。9.3.2用户自定义异常:用户可以自己创建异常。Python中异常是类,创 建异常,就是创建一个异常子类。通过继承,将 异常类的所有基本特点保留下来。通过这种方式,程序可以命名它们自己的异常。自定义异常是 通过扩展 BaseException 类或 BaseException 的子 类来定义一个新的异常。:BaseException类是所有异常类的父亲,所有的 Python异常类都直接或间接地继承自 BaseException 类。:定义异常类的语法:class MyException(Exception):pass MyException是自定义异常类名,Exception是异 常基类。:本章介绍了一些常见的异常类型及异常处理方法,简单说明了如何手动抛出异常、自定义异常等 知识点。通过本章的学习,读者要理解错误与异 常的区别和联系,理解异常处理与程序健壮性的 关系,掌握处理常见异常的一般方法和原则。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3