python课程回顾复习记录简要7

本文详细介绍了Python中的异常处理机制,包括try-except-else-finally的使用,以及如何捕获和处理不同类型的异常。同时,还探讨了模块的概念,强调了模块在组织代码和复用性方面的重要性。通过导入和使用模块,可以提高代码的可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常处理与模块
在编程中,异常是程序在运行时发生的不正常事件,通常它会打断程序指令的正常执行。对于一些优良的程
序,开发者应该在程序产生异常时,提供处理这些不正常事件的处理方法,而使程序不会因为异常的产生而阻断程序的执行或产生不可预见的结果。
在 Python 中,对异常最好的描述是:异常是因为程序出现了错误而在正常控制以外而采取的行为措施。这
个行为措施又分为两个阶段,阶段一是异常引发的错误信息,阶段二是检测阶段(或异常处理阶段)。
在这里插入图片描述
可以让开发人员在异常发生时更直接地控制它们,此时,开发人员不仅有检测错误的能力,还可以在它们发生时采取更可靠的补救处理措施,这样就打打提高了程序的健壮性。
python中的异常
在这里插入图片描述
1.捕获异常
捕获异常主要是通过 try、except、else、finally 等关键字来完成,通常情况下,捕获异常可以通过 try 语句来检测异常,注意任何在 try 语句块里的代码都会被检测,主要是检测有无异常发生
常见的捕获异常的语法格式如下:

try: ##检测异常的代码
	可能产生异常的代码
except 异常名称 1: ##对应异常 1
	异常的处理代码 1
except 异常名称 2: ##对应异常 2
	异常的处理代码 2
...
finally:
	无论如何都会执行的代码
try:
    print("abc")
    print(age)
    pirnt("haha")
except NameError:   #名称也可以不写
    print("引发一个错误")
print("helloworld")

在这里插入图片描述
出现异常后执行except里的语句,try里边异常后的语句不执行了,except可以写多个
else 关键字应用在 if 语句/for 中,表示当条件不满足时执行的操作,其实,else 同样适用于 try-except 捕获
异常语句中,即若没有捕获到异常,则执行 else 后的相关操作

try: ##检测异常的代码
	可能产生异常的代码
except 异常名称 1: ##对应异常 1
	异常的处理代码 1
except 异常名称 2: ##对应异常 2
	异常的处理代码 2
...
else: #判断是否有异常!
	...没有检测到到异常
try:
    print("abc")
    a=10/1
except NameError:
    print("引发一个错误")
else:
    print("没有捕获到异常")
print("helloworld")

在这里插入图片描述
当有捕获多个异常且需要获取到具体的某个异常描述信息时,此时就可使用下列语法:

try: ##检测异常的代码
	可能产生异常的代码
except (异常名称,名称 2) as 变量名: ##对应异常,并把异常信息存储在变量中
	异常的处理代码
try:
    print("abc")
    a=10/0
except ZeroDivisionError as msg:
    print("引发一个错误:",msg)
else:
    print("没有捕获到异常")
print("hello

在这里插入图片描述
当要捕获所有的异常信息时,此时就需要使用到Exception类,语法格式:

try: ##检测异常的代码
可能产生异常的代码
except Exception as  变量名: ##对应的所有异常,并把异常信息存储在变量中 Exception 父类
	异常的处理代码
try:
    print("abc")
    print(name)  #异常1
    a=10/0  	#异常2
except Exception as msg: #异常父类
    print("引发一个错误:",msg)
    print(type(msg))  #异常类型
else:
    print("没有捕获到异常")
print("helloworld")

在这里插入图片描述
try-finally 语句中的 finally 后的代码是必须执行,即无论异常是否引发都要执行,此时就要使用到 finally,比如关闭文件、释放锁等,语法格式如下:

try: ##检测异常的代码
	可能产生异常的代码
except 异常名称: ##对应异常
	异常的处理代码
...
finally:
	无论如何都会执行的代码
try:
    file=open("hello.txt","r")  #异常
except Exception as msg:
    print("引发一个错误:",msg)
    print(type(msg))
else:  #如果没有异常执行的代码
    print("没有捕获到异常")
finally:   #最后会执行的代码
    print("一定会执行的代码")
print("helloworld")

在这里插入图片描述
向上抛出异常指的是不对当前异常进行处理而使用 raise 关键字直接向上抛出该异常,注意:若想要让程序最终不中断,因此需要到调用处再次捕获异常并进行处理。
除了可以向上抛出 Python 内部已定义的异常类外,还可以向上抛出自定义的异常类,且此时自定义
的异常类必须是 Error 或 Exception 的子类

raise 自定义异常类名(...)
#自定义异常类
class ShowAgeError(Exception):
    def __init__(self,error_msg):
        print("ShowAgeError:",error_msg)
class Student:
    def __init__(self):
        self.__age=0
    #封装
    def set_age(self,age):
        if 0 <= age <= 130:
            self.__age = age
        else:
        # self.__age = 18
            raise ShowAgeError("年龄值为 0-130 才正确!")
    def get_age(self):
        return self.__age
#测试
student=Student()
student.set_age(-18)
print(student.get_age())

在这里插入图片描述
模块
Python 模块(Module),是一个以.py 结尾的 Python 文件,包含了 Python 对象定义和 Python 语句。使用模块有助于逻辑的组织 Python 代码片段,通常情况下,我们把具有某些特定功能的代码分配到一个模块里,这样能使代码更好用、易懂。
在 Python 模块中,可以定义函数、类和变量,此外,模块里还可以包含
可执行的代码。

需要注意的是,在 Python 中,可以使用 Python 给开发者提供的模块(Python 解释器给我们写好的模块,
os/random),如 math、time、random 等,也可以使用开发者自定义的模块(自己写,自己发布、安装)。但在使用模块前,都需要将模块通过 import 关键字导入相应的模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值