版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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/n7.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<异常2>as<variable>: <执行语句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<异常2>as<variable>: <执行语句3>#如果异常2发生,那么执行该语句块,并把异常实例命名为variableexcept: <执行语句4>#发生了以上所有列出的异常之外的异常,执行该语句块。else: <执行语句5>#如果没有异常发生,那么执行该语句块finally: <执行语句6>#无论是否有异常发生,均会执行该语句块。7.2捕获异常打开一个文件test.txt时,在该文件中的内容写入内容,判断可能发生的异常。
try:f=open("test.txt",'r+')f.write("这是一个测试文件,用于测试异常!!")exceptIOError:print("Error:没有找到文件或读取文件失败")else:print("内容写入成功")finally:f.close()print("程序执行结束")7.2捕获异常判断下列程序可能发生的异常。
defdiv(a,b):try:print("a/b=",a/b)exceptZeroDivisionError:print("除数为0")exceptExceptionase:print("未知错误:{}".format(e))else:print("语句块正常执行")finally:return'程序运行结束'print(div(3,2))print()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (4)晶体密度的计算(B卷)-2025年高考化学二轮复习
- 安徽省亳州市涡阳县四校联考2024-2025学年九年级上学期12月期末数学试题(含答案)
- 高一 人教版 地理 第一章《火星基地应该是什么样子》课件
- 2024届名校学术联盟高考模拟信息卷 押题卷(九)
- 高一必修上册-统编版-语文-第六单元《师说》(第二课时) 课件
- 安徽省合肥市包河区2023-2024学年三年级上学期语文期末试卷
- 2025年中考英语一轮教材复习 八年级(上) Unit 2-3
- 看动漫学英语(日照职业技术学院)知到智慧树答案
- 景观工程建设可研报告
- 工程研究中心建设项目可行性研究报告
- 2024-2029年中国五分类血球仪行业市场现状分析及竞争格局与投资发展研究报告
- 融媒体内容策划与制作赛项客观题附有答案
- 《创新永无止境》(教学设计)
- 中等职业学校公共基础课水平测试数学测试试卷及答案B
- 智能汽车传感器技术智慧树知到期末考试答案2024年
- 道路信号灯维护服务方案
- 实验室安全与防护智慧树知到期末考试答案2024年
- JBT 10942-2010 干式变压器用F级预浸料
- 排球二级裁判员考试试题2
- (2024年)全新食堂人员食品安全培训
- 小班儿歌《谁会飞》课件
评论
0/150
提交评论