拆包
拆包:对于函数中的多个返回数据,去掉元组、列表或者字典,直接获取里面数据的过程。
列表的拆包
元组的拆包
异常种类
异常的定义
异常: 异常是程序执行过程中出现的非正常流程现象。
针对程序出现的异常现象要制定合理有效的处理方案, 不仅要避免异常现象的出现, 还要在异常出现后设计针对性的有效处理方案。
- 当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常" 。
异常的分类
异常 | 意思 |
---|---|
AttributeError | 试图访问一个对象没有的属性 |
IOError | 输入/输出异常;基本上是无法打开文件 |
ImportError | 无法引入模块或包;基本上是路径问题或名称错误 |
IndentationError | 语法错误(的子类) ;代码没有正确对齐 |
IndexError | 下标索引超出序列边界 |
KeyError | 试图访问字典里不存在的键 |
KeyboardInterrupt | Ctrl+C被按下 |
NameError | 使用一个还未被赋予对象的变量 |
SyntaxError | Python代码非法,代码不能编译 |
TypeError | 传入对象类型与要求的不符合 |
ValueError | 传入一个调用者不期望的值 |
异常处理
捕获异常格式
语法格式一
try:
可能引发异常现象的代码 或 不确定是否能够正常执行的代码
except 异常类型:
出现异常现象的处理代码 或 编写尝试失败的代码
- 正常输出报错内容
Exception- 万能异常
- Exception是万能异常,可以捕获任何异常
语法格式二
try:
可能引发异常现象的代码
except: (可以没有)
出现异常现象的处理代码
else:
未出现异常现象的处理代码
- if……except……else中如果没有捕获到异常,那么就执行else中的代码。
语法格式三
try: 必选
可能引发异常现象的代码
except: 必选: 二选一
出现异常现象的处理代码
else: 可选
未出现异常现象的处理代码
finally: 必选:二选一
try代码块结束后运行的代码
- finally无论是否有异常,都会执行代码。
抛出异常:raise
使用步骤:
- 创建一个Exception('xxx')对象, xxx表示异常提示信息
- raise抛出这个对象