模块
1.什么是模块
python一个 py 文件就是一个模块
2.怎么在一个模块中使用另外一个模块中的内容
1)前提:
如果想要在一个模块中使用另外一个模块中的内容,被使用的模块名必须符合变量名的要求
2)导入模块
a .import 模块名 - 导入指定模块,导入后可以通过‘模块名. xxx ’的方式使用这个模块
b. from 模块名 import 内容1,内容2,… - 导入指定模块,导入后可以直接使用指定内容
c. **from 模块名 import *** - 导入指定模块,导入后可以直接使用模块中所有内容
d. import 模块名 as 新模块名 - 导入指定模块后裔对应模块进行重命名:‘新模块名.xxx’
e. from 模块名 import 内容1 as 内容2 - 对导入的内容重命名
test . py
a = 100
name = '小明'
def func1(num):
num *=2
print('test中的函数')
return num
a.导入方式1
import test
print(test.a)
print(test.name)
test.func1(7)
print(test.func1(2))
b.导入方式2
from test import a,name
print(a)
print(name)
c.导入方式3
from test import *
print(a)
print(name)
print(func1(2))
d.导入方式4
import numpy as np
e.导入方式5
from test import name as t_name
print(t_name)
包
1.什么是包
包含_ _ init _ _. py的文件夹就是包
2.怎么使用包或者文件夹中的模块中的内容
1)import 包名
(只适用于包)导入指定的包,导入后可以通过‘包名.xxx’去
使用包中_ _init _ _.py文件中的所有内容
文件夹files1中的_ _ init _ _.py内容为
msg = '包file1中__init__中的变量'
def f_test2():
print('包中__init__中的函数')
使用包中的内容
import files1
files1.f_test2() #包中__init__中的函数
print(files1.msg) #包file1中__init__中的变量
2)from 包名 import 模块名1,模块名2,…
导入指定包中指定的模块,导入后可以通过‘模块名.xxx’使用指定模块中的内容
from files1 import test1
print(test1.msg) #包files1的模块test1中的变量
3)from 包名 import 内容1,内容2,…
(只适用于包)导入指定包中_ _ init _ _.py文件中的指定内容
from files1 import msg,f_test2
f_test2() #包中__init__中的函数
print(msg) #file1中__init__中的变量
4)import 包名.模块名
import files2.test2 as t2
print(t2.msg) #文件夹files2中模块test2的变量
from files2.test2 import msg
print(msg) #文件夹files2中模块test2的变量
5)from 包名.模块名 import 内容1,内容2,…
from files1.abc1.test3 import msg, func1
print(msg) #包files中文件夹abc1中test3的变量
func1() #包files中文件夹abc1中test3的函数
异常
1.异常 - 程序中错误
程序出现异常(报错)会直接让程序结束运行(在哪个位置出现的异常,程序就会在哪个地方结束)
2.异常捕获
让程序在出现异常的时候程序不结束,还可以接着往后执行
1)语法结构1:
- 捕获所有异常
try:
代码段1(需要捕获异常的代码)
except:
代码段2(出现异常后会执行的代码)
…
finally:
代码段3(最后无论如何都会执行的代码)
执行过程:先执行代码段1,执行代码段1的时候如果没有出现异常,就不执行代码段2;如果出现异常,程序不报错并且马上执行代码段2。
try:
age = int(input('请输入年龄:'))
print(age)
except:
print('年龄输入有误!')
finally:
print('不管怎样都会输出')
2)语法结构2(推荐使用):
- 捕获指定类型异常
try:
代码段1(需要捕获异常的代码)
except 异常类型:
代码段2(出现异常后会执行的代码)
…
finally:
代码段3(最后无论如何都会执行的代码)
try:
print('abc'[4])
except IndexError:
print('出错!')
3)语法结构3:
- 同时捕获多种异常
try:
代码段1(需要捕获异常的代码)
except (异常类型1,异常类型2,…):
代码段2(出现异常后会执行的代码)
…
finally:
代码段3(最后无论如何都会执行的代码)
try:
print('abc'[4])
except (IndexError, KeyError):
print('出错!')
4)语法结构4:
- 同时捕获多种异常
try:
代码段1(需要捕获异常的代码)
except 异常类型1:
代码段11(出现异常后会执行的代码)
except 异常类型2:
代码段22
except 异常类型3:
代码段33
…
finally:
代码段3(最后无论如何都会执行的代码)