1.异常及其处理
f = None
try:
f = open("test.txt","r")
except (FileNotFoundError,AttributeError) as msg:
print("有异常出现")
print("异常的信息是:%s"%msg)
else:
print("没有异常发生")
finally:
try:
f.close()
except (FileNotFoundError,AttributeError) as msg:
print("有异常出现")
print("异常的信息是:%s" % msg)
else:
print("没有异常发生")
打印结果如下:
有异常出现
异常的信息是:[Errno 2] No such file or directory: 'test.txt'
有异常出现
异常的信息是:'NoneType' object has no attribute 'close'
2.自定义异常及其处理
# 自定义异常
class ShortInputException(Exception):
def __init__(self,length,at_least):
self.length = length
self.at_least = at_least
def main():
try:
s = input("请输入:-->")
if len(s) < 3:
# 使用 raise 关键字来抛出一个异常
raise ShortInputException(len(s),3)
except ShortInputException as res:
print('有异常出现:输入的长度是%d,但长度至少应该是%d'%(res.length,res.at_least))
else:
print("没有异常发生")
main()
打印结果如下:
请输入:-->12
有异常出现:输入的长度是2,但长度至少应该是3
总结:
try:是异常捕获开始代码,try放在特别关心的那段代码前面
pass:如果这段代码出现了问题,那么后面的代码都不会运行
pass2
pass3
except:异常类型 as ex:捕获某种类型的异常
except....多个except。按照顺序依次对比类型
else:没有异常时执行
finally:不管有没有异常都要执行
3.Python模块及其安装
- Python 中的模块
模块好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块
- 导入模块
# 方式1:
import os
# 方式2:
from os import path
# 方式3:
from os import *
- 定位模块
当你导入一个模块,Python解析器对模块的搜索顺序是:
1.当前目录
2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录
3.如果都找不到,Python会查看默认路径
4.模块搜索路径存储在system模块的sys.path变量中。变量包含当前目录,PYTHONPATH和由安装过程决定的默认目录
- 安装模块
conda install 模块
pip install 模块
4.模块制作
import demo_sub
res = demo_sub.sub(1, 2)
print(res)
5.模块的发布
- 编辑setup.py文件
- 构建模块
python setup.py build
- 生成发布压缩包
python setup.py sdist