python模块、包和异常捕获
模块
1.认识模块
1)python中一个py文件就是一个模块
2)模块分为系统模块和自定义模块两种
系统模块:python自带的模块,例如:functools、keyword、math、random、re、time、turtle、smtplid。
自定义模块:由程序员自己创建的模块
2.导入模块
怎么在一个模块中使用另一个模块中的内容。如果我们想要使用的内容在另一个模块中的内容,必须在使用前先导入;
一个模块中的内容需要能被其他模块使用的前提:模块名必须符合函数要求(是标识符、不能是关键字)。
3.怎么导
1)导入一个或者多个指定模块,导入后通过‘模块名.’的方式使用模块中所有的全局变量。
语法:
import 模块名1,模块名2,…
2)导入一个指定模块的一个或者多个变量,导入后可以直接使用import后面列出的变量。
语法:
from 模块名 import 变量名1,变量名2,…
3)导入一个指定模块的所有全部全局变量,导入后可以直接作用。
语法:
from 模块名 import *
4)重命名 - 解决代码过长或者名字冲突
对模块名重新命名,语法:
import 模块名 as 新模块名
对变量重新命名,需要重命名那个在那个后面加‘as 新名字’,语法:
form 模块名 import 变量名1,变量名2 as 新变量名2,…
4.导入的原理和阻止导入
1)导入的原理
不过是通过import直接导入模块,还是通过from - import导入模块中的变量,原理都是进入指定模块,将模块中的代码全部执行一遍。
2)阻止导入
在被导入的模块中添加指定的if语句,main提示的if语句。
语法:
if __name__ == ‘__main__’
需要被阻止导入的代码
包
1.什么是包
包含__init__.py
文件的文件夹就是包
2.导入包中的模块
导入方式1
import 包.模块 as 新名字
使用:
新名字.模块内变量
导入方式2
from 包 import 模块名1,模块名2,…
from 包 import *
使用:
模块名1.模块内变量
导入方式3
from 包.模块 import 变量名1,变量2,…
直接使用import后面的变量
导入方式4
如果要使用包中的__init__.py
中的内容,直接用包名去导入和使用。
3.__init__.py
文件
作用:a、创建快捷键;b、封装通用功能。
注意:别的文件可以直接用包名来使用此文件内容,此文件不可使用包外的文件内容。
异常捕获
1.异常
异常就是错误,程序报错就是程序出现异常;如果执行程序的过程中程序异常,程序会直接结束,不会再往后面执行。
2.异常捕获
1)定义:
异常捕获就是让程序在程序异常的时候,不报错,并且让程序可以继续执行。
2)什么时候需要异常捕获
明明知道某段代码可能会出现异常,但是出现异常原因不是代码问题,而是使用者操作不当导致的,又不想导致程序崩溃,就可以使用异常捕获。
3)语法
a.捕获所有类型的异常,语法:
try:
代码段1(需要捕获异常的代码)
except:
代码段2(捕获到异常后会执行的代码)
执行过程:先执行代码段1,执行过程中出现异常,不报错直接执行代码段2,然后再执行后续的其他异常,如果代码1没有异常,不执行代码2,直接执行后续的其他代码
b.捕获特点异常,语法:
try:
代码段1(需要捕获异常的代码)
except 异常类型:
代码段2(捕获到异常后会执行的代码)
c.同时捕获多种异常,进行相同处理,语法:
try:
代码段1(需要捕获异常的代码)
except (异常类型1,异常类型2,…):
代码段2(捕获到异常后会执行的代码)
d.同时捕获多种异常,进行不同处理,语法:
try:
代码段1(需要捕获异常的代码)
except 异常类型1:
代码段11(捕获到异常后会执行的代码)
except 异常类型2:
代码段22(捕获到异常后会执行的代码)
…
3.抛出异常
主动让程序崩溃,让报错出现希望的异常
语法:
raise 异常类型(可以自己定义,也可以使用系统原有)