第六章python异常和包详解
一、异常
- 了解异常
- 捕获异常
- 异常的else
- 异常的finally
- 异常的传递
- 自定义异常
-
了解异常
1.1 检测到错误,解释器无法继续执行,出现一些错误提示就是异常
1.2 异常语句尝试执行可能发生错误的语句
1.3 语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码 -
捕获异常
2.1 语法:
try:
可能发生错误的代码
except 异常类型:
如果捕获到该异常类型执行的代码
2.2 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
2.3一般try下方只放一行尝试执行的代码
2.4 捕获多个指定异常
try:
可能发生错误的代码
except (异常类型1,异常类型2…):
如果捕获到该异常类型执行的代码
2.5 捕获异常描述类型
try:
可能发生错误的代码
except (异常类型1,异常类型2…) as result:
print(result)
2.6 捕获所有异常
try:
可能发生错误的代码
except Exception as result:
print(result)
//Exception是所有程序异常类的父类 -
异常的else
try:
可能发生错误的代码
except Exception as result:
print(result)
else:
没有异常执行的代码 -
异常的finally
无论是否异常都要执行的代码//如关闭文件释放内存
try:
可能发生错误的代码
except Exception as result:
print(result)
else:
没有异常执行的代码
finally:
无论是否异常都要执行的代码 -
异常的传递
5.1 命令提示符执行py文件
5.2 体验传递
需求:
尝试打开test.txt文件存在读取内容,不存在提示用户
读取内容:循环读取,当无内容的时候退出循环,如果用户意外终止,提示用户已经被意外终止
5.3 读取数据时没有数据相当于0
5.4 在命令提示符中ctrl+c是结束终止的键 -
自定义异常
6.1 在Python中,抛出自定义异常的语法为raise异常类对象
6.2将不满足程序逻辑要求的返回给用户
1.自定义异常类//继承Exception
class 异常类类名(Exception)
代码
设置抛出异常的描述信息
def str(self):
return …
2.抛出异常类创建对象 raise 类名(pramam1,pramam,…)
3.捕获异常
except Exception…
二、模块
- 了解模块
- 导入模块
- 制作模块
- __all__
- 包的使用方法
- 了解模块
模块就是一个py文件可以包含Python对象定义和Python语句 - 导入模块
2.1 导入模块的方式
2.1.1 import 模块名
模块名.功能名()//调用功能
2.1.2 from 模块名 import *
功能名()//调用功能
2.1.3 from 模块名 import 功能1,功能2…
功能名()//调用功能
2.1.4 import 模块名 as 别名//如果定义了别名就不能使用原名
别名.功能名()
2.1.5 from 模块名 import 功能名 as 别名
别名() - 制作模块
每个Python文件都可以作为一个模块,模块的名字就是文件的名字。名字必须满足标识符命名规则
定义模块
测试模块(需要使用当前文件限制调用条件)
if name == ‘main’:
测试代码
//__name__系统变量如果是自身模块值是__main__否则是当前模块名
导入模块
调用功能 - 模块的定位顺序
当导入一个模块,Python解释器对模块位置的搜索顺序是:
1.当前目录
2.shell变量PYTHONPATH下的每个目录
3.默认路径/user/local/lib/python
自己的文件名不要和已有的模块名重复
使用from 模块名 import 功能 的时候,如果功能名字重复,调用到的是最后定义或导入的功能
5.模块名和变量名重复,变量会覆盖模块名//数据是通过引用传递的
6.__all__
__all__写在模块里面的变量,当使用from xxx import *导入时,只能导入这个列表中的元素
三、包
- 将有联系的模块组织在一起,即放在同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称之为包。
- 制作包
[NEW]-[PythonPackage]-输入包名-[Ok] - 导入包
方法一:1.import 包名.模块名//导入
2.包名.模块名.功能()//调用
方法二:from 包名 import *
模块名.功能()
必须在__init__.py文件中添加__all__ = [],控制允许导入的模块列表,否则不能导入
四、面向对象版学员管理系统
了解面向对象开发过程中类内部功能的分析方法
常用系统功能
增删改查
需求:
1.系统要求:学员数据存储在文件中
2.系统功能:添加,删除,修改,查询显示,保存学员信息,及退出系统