文档详情

Python程序设计项目化教程- 课件 项目七 能否构成三角形—异常处理 .pptx

发布:2025-05-24约3.74千字共32页下载文档
文本预览下载声明

项目七能否构成三角形——异常处理

textbook教材Python程序设计项目化教程孙海洋编著电子工业出版社ISBN:9787121477546

项目描述【项目描述】自定义一个三角形异常类,当用户传入三个数据构造一个三角形对象前,先判断是否满足三角形边长关系,如果不满足,则抛出异常,并提示用户重新输入;若满足,则构造该三角形对象,计算并输出其面积。

Contents目录01.除数为零的烦恼——初识异常02.输入到满意为止——异常处理03.圆半径不能为负——自定义异常04.项目实施05.项目小结

PartOne除数为零的烦恼——初识异常了解算法的概念了解算法的性质和目标了解异常的概念

任务描述【任务描述】小明要设计一个简易计算器。帮其设计一个除法运算函数,并用测试用例验证该函数的正确性及健壮性。算法?错误?异常?

算法性质和目标算法:解决问题的方法、步骤的集合算法性质:有输入、输出、有限、确定和可执行5个性质算法目标:算法的正确性、可读性、健壮性、高时间效率和高空间效率等几大追求目标算法性质和目标

错误和异常程序中的错误可以分为两类:一类是外部因素(如硬件、操作系统)引起的“非正常”情况;另一类是Python语法错误,导致程序无法执行。而程序执行中因算法、编程或用户输入等问题导致的“非正常”情况,被称为异常。错误和异常

常见异常类型1.类型异常运行结果:【异常原因】+运算符不能连接字符串和数值。2.值异常运行结果:【异常原因】如果用户无意中输入非整数值,如浮点数3.14或字符串hello,则均会抛出如下异常。

常见异常类型3.名称异常运行结果:【异常原因】解释器不理解c的含义,提示c未定义。4.文件找不到异常运行结果:【异常原因】若上述文件路径不存在,则会抛出如下异常。

常见异常类型5.索引异常运行结果:【异常原因】列表ls含4个元素,下标索引从0~3,故ls[4]下标越界。6.语法错误(强类型异常)运行结果:【异常原因】】字符串“hello”的右引号错误写为中文符号

常见异常类型7.缩进异常(强类型异常)运行结果:【异常原因】Python是使用缩进来标识代码块和代码逻辑的。示例代码中的4行代码应缩进一致。

任务实施运行结果如下:【分析】程序打印前五个测试用例的结果。当执行到第六个用例时,由于除数为零,程序抛出ZeroDivisionError异常,并显示错误信息和堆栈跟踪。

PartTwo输入到满意为止——异常处理掌握异常处理的关键词掌握异常处理的结构

任务描述【任务描述】设计一个除法程序,要求用户从键盘输入两个数值,如果输入合法,则计算并输出两数相除的结果。当输入了非数据,如字符串数据,或除数为0的情况,程序应该能够给出相应提示信息,而不至于程序崩溃。了解了常见的异常类型后,我们来学习异常处理的基础知识来完成该任务吧!

异常处理结构及流程1.try-except异常处理结构【执行流程】:使用try关键词监控代码块,一旦代码块执行过程中抛出异常,就检查异常类型。若异常类型与except后指定的类型相匹配,则执行对应的异常处理;若不匹配,则无法捕获异常,程序终止执行。2.try-except-else结构【执行流程】程序先尝试执行try代码块,若无异常则执行else部分;若抛出异常,则检查异常类型,若与except后列出的任一异常类型匹配,则执行异常处理;若不匹配,则程序通常终止执行。

异常处理结构及流程3.try-except-finally异常处理结构【说明】无论有没有异常,都要执行finally部分的代码。

异常处理结构及流程分析下图代码【执行流程】程序进入无限循环,尝试接收用户输入的两个整数并进行除法运算。若运算过程中未发生异常,则打印运算结果并恭喜用户,随后退出循环。若发生除以零的异常,则捕获该异常并打印错误消息。无论是否发生异常,程序都会执行finally块中的代码,打印鼓励消息和分隔线,然后继续下一次循环(除非已经通过break语句退出)。

断言assertassert表达式断言格式案例分析断言通常以关键字assert开头,后面跟着一个布尔表达式,如果表达式为真,则断言通过,否则抛出异常AssertionError。断言的语法

断言assert分析下图代码:这个断言检查name参数的类型是否为字符串(str)。如果不是字符串,程序将抛出一个AssertionError异常。这个断言检查age参数的类型是否为整数(int)。如果不是整数,程序将抛出一个AssertionError异常。这个断言首先检查sc参数的类型是否为整数(int)。然后,它检查sc的值是否在0到100的范围内。如果sc的类型不是整

显示全部
相似文档