第 9 章和第 10 章:异常、模块、包和数据可视化
最编程
2024-04-23 07:25:32
...
第九章 异常、模块、包
异常
捕获异常
捕获常规异常
# 捕获常规异常
try:
f = open("D:/abc.txt", "r", encoding = "UTF-8")
except:
print("出现异常了,因为文件不存在,我将open的模式,改为w模式去打开")
f = open("D:/abc.txt", "w", encoding = "UTF-8")
出现异常了,因为文件不存在,我将open的模式,改为w模式去打开
捕获指定异常
# 捕获指定的异常
try:
print(name)
except NameError as e:
print(e)
name 'name' is not defined
未正确设置捕获异常类型,将无法捕获异常
try:
print(name)
except ZeroDivisionError as e:
print(e)
捕获多个异常
try:
1 / 0
print(name)
except (NameError, ZeroDivisionError) as e:
print("出现了变量未定义 或者 除以0的异常错误")
出现了变量未定义 或者 除以0的异常错误
捕获所有异常
# 捕获所有异常
try:
f = open("D:/abc.txt", "r")
except Exception as e:
print(e)
[Errno 2] No such file or directory: 'D:/abc.txt'
异常else
else表示的是如果没有异常要执行的代码。
try:
print("Hello")
except Exception as e:
print("出现异常了")
else:
print("好高兴,没有异常")
Hello
好高兴,没有异常
异常的finally
finally表示的是无论是否异常都要执行的代码,例如关闭文件。
try:
f = open("D:/abc.txt", "r")
except Exception as e:
print("出现异常了")
f = open("D:/abc.txt", "w")
else:
print("好高兴,没有异常")
finally:
print("我是finally,有没有异常我都要执行")
f.close()
出现异常了
我是finally,有没有异常我都要执行
异常的传递性
# 定义一个出现异常的方法
def func1():
print("func1 开始执行")
num = 1 / 0
print("func1 结束执行")
# 定义一个无异常的方法,调用上面的方法
def func2():
print("func2 开始执行")
func1()
print("func2 结束执行")
# 定义一个方法,调用上面的方法
def main():
func2()
main()
模块
概念
Python 模块(Module),是一个 Python 文件,以 .py 结尾。模块能定义函数,类和变量,模块里也能包含可执行的代码。
作用
每一个模块都可以帮助我们快速的实现一些功能,比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能。
导入方式
模块的导入一般写在代码文件的开头位置
import模块名
# 导入时间模块
import time
print("开始")
# 让程序睡眠3秒(阻塞)
time.sleep(3)
print("结束")
开始
# 3秒后
结束
from 模块名 import 功能名
# 导入时间模块中的sleep功能
from time import sleep
print("开始")
# 让程序睡眠3秒(阻塞)
sleep(3)
print("结束")
开始
# 3秒后
结束
from 模块名 import *
# 导入时间模块中的所有功能
from time import*
print("开始")
# 让程序睡眠3秒(阻塞)
sleep(3)
print("结束")
开始
# 3秒后
结束
as定义别名
# 功能别名
from time import sleep as tt
print("开始")
# 让程序睡眠3秒(阻塞)
tt(3)
print("结束")
开始
# 3秒后
结束
# 模块别名
import time as tt
print("开始")
# 让程序睡眠3秒(阻塞)
tt.sleep(3)
print("结束")
开始
# 3秒后
结束