异常,模块与包
一.异常
1.异常的概念
异常其实就是错误,编译器无法继续执行,会出现错误提示,也就是所称的bug
2.异常的捕获方法
捕获异常的作用就在于,提前假设在某处会出现异常,提前做好准备,当真的出现异常的时候,可以有后续手段
捕获异常的语法:
1基本捕获语法(捕获所有异常)
try:
# 可能发生的异常
except:
# 如果出现异常执行的代码
# 也可写成except Exception as e:
2捕获指定异常
try:
# 可能发生的异常
except NameError as e:
# 如果出现NameError异常执行的代码
# e里面记录了变量的具体信息
3捕获多个异常
try:
# 可能发生的异常
except (NameError,ZeroDivisionError) as e:
# 如果出现NameError或ZeroDivisionError异常执行的代码
4异常else和finally语句
else:如果没有出现异常继续执行的语句
finally:无论有没有异常都要执行的语句
try:
f = open('D:/abc.txt','r',encoding='UTF-8')
except (NameError,ZeroDivisionError) as e:
print('出现异常了')
else:
print("太好了,没有出现异常")
finally:
f.close()
这两个语句在捕获异常中可写可不写
5异常的传递
示例:
def func1():
print("1开始")
a = 1 / 0
print("1结束")
def func2():
print("2开始")
func1()
print("2结束")
def main():
try:
func2()
except Exception as e:
print(e)
实质上也就是函数的嵌套
二.模块
1.模块的概念
模块就是一个python文件,就像一个工具包,里面有类、函数、变量等、可以通过导入模块来使用,相当于c语言的引用头文件
2.模块的导入
总语法:
[from 模块名] import [模块|类|变量|函数|*][as 别名]
[]表示可选
1.import导入
语法: import 模块名
import 模块名1,模块名2
使用:模块名.功能名()
import time
print("开始")
time.sleep(2)
print("结束")
2.from导入
语法:from 模块名 import 功能名
使用:功能名()
from time import sleep
print("开始")
sleep(2)
print("结束")
import *则表示导入模块里的所有功能
3.as 别名
也就是把原模块的名或者里面功能的名改为自己想要的
from time import sleep as sl
print("开始")
sl(2)
print("结束")
3.自定义模块并导入
在python里面新建一个文件以.py结尾,并在里面定义功能,并且文件的命名要符合标识符的命名规则
from sk import add
c = add(1, 2)
print(c)
当导入多个模块时,且模块的功能同名,当调用这个同名功能时,调用到的是后面导入模块的功能
4.__main__变量
如果想要测试模块里的东西,但是在外部导入的时候,又不想将运行测试的代码,就可以用__main__变量去处理,如:
if __name__ == '__main__':
add(1, 2)
5.__all__变量
如果模块文件中有__all__变量,当使用from 模块 import *导入时,只能导入这个列表中的元素,如果没有则可以导入模块中的所有功能
三.包
1.包的概念
可以理解成为一个文件夹,里面包含了很多个模块,还包含了一个__init__.py的文件,它们共同构成了一个包,如果没有这个文件,就只是一个文件夹
从逻辑上看,包依然是一个模块
2.自定义包
创建一个文件夹,然后系统会自动创建__init__.py文件,接下来在这个包里自己创建模块和功能
3.包的导入及使用
跟模块很相像
1
import 包名.模块名
包名.模块名.目标
2
from 包名.模块名 import 目标
目标
3
from 包名 import *
模块名.目标
注:如果要用__all__变量控制允许导入的模块,必须添加到__init__.py的文件当中去
4.第三方包的安装
由民间大佬开发出来的包称作第三方包,里面有很多使用的功能
安装:
1 打开命令提示符 输入pip install 包名,即可安装
但是默认连接的是国外的网站,所以网速很慢,可以换个方法
2 打开命令提示符 输入pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
即可安装
3 pycharm里也有安装第三方包的功能
右下角点击解释器设置,然后通过加号添加第三方包
网速慢的话可以在选项那里加上那个网址下载