一、模块
1)模块概念
把函数整合成一个工具包,当我们需要使用的时候就直接导入这个模块
优点:
1.提高代码的可维护性(是错了好修改吗?)
2.提高代码的复用性,当一个模块定义完毕,可以被多个地方引用(在后续编写过程中调用很方便)
3.引用其他的模块(内置模块(random,math),第三方模块(requests),自定义模块)()
2)引用、修改模块的字符
2.1 import
在py中用关键字import来引入模块。
例 :import module1
import math
#调用语法格式:模块名.函数
#向上取整 ceil是向上取整的名称
print(math.ceil(2.1))
#向下取整 floor是向下取整的名称(向上和向下取整都是在模块math里的用法)
print(math.floor(5.9))
输出结果
2.2 from…import
2.2.1 用处:从某个模块中引入某个函数,这样避免了引入所有的函数,浪费内存
2.2.2 格式
from模块名 import 函数名
from random import randint,randrange``
from random import randint,randrange
#调用语法格式: 函数名()
# print(random.randint(0,2)) #错误的
#错误在于已经导入具体的random模块中的randint和randrange函数了
print(randint(0,10))
print(randrange(1,11))
# print(random()) #没有导入这个函数,不能使用
打印结果
2.3 as
2.3.1 作用:把模块的名字改的更简洁,调用的时候方便
2.3.2例子
import random as r #r表示的就是random模块
print(r.randrange(1,100))
print(random.randrange(1,100))
打印结果
注:在这里我们可以看到,把random用as改名为r后,再调以random这个模块名来调用便会报错
2.4定位模块(这一块术语好专业,目前看不懂,先存着以后遇到问题在来看)
当你导入一个模块,python的解释器对模块位置的搜索的顺序:
1.当前目录
2:如果不在当前的目录,python则搜索在shell变量的PYTHONPATH的每一个目录
3:python安装默认路径,根据操作系统不同进行查找
4:模块的搜索路径存储在system模块的sys.path模块中变量,变量中包含当前的目录
python path和由安装过程决定的默认的目录
pythonpath 变量----》环境变量
import sys
print(sys.path)
#返回的是路径列表,包含了所有的目录
3)使用自定义模块
3.1定义自己的模块
定义一个求和函数(需要在另外一个文件中命名,然后再调用)
#首先新建一个文件,命名为 aixuexi.py
a:int
b:int
def add(a,b)
return a+b
#打开另外一个文件
import test
print(test.add(1,2))
输出结果
4包
定义:
包-----》python中的python package------>文件夹----》容器
问题1:
为什么需要引入包?
将有联系的模块放到一起,便于查找归纳整理
问题2:
如何将有关系的模块联系到一起----》将其放入同一个文件夹
问题3:
放入到同一个文件夹后如何去导入?
方式1:
使用import关键字导入
格式:
import 文件.模块
方式2:
使用from 文件夹 import 模块
格式:
from 文件夹的名字 import 文件名
import Day055.test #可以把整体看成是一个包
#print(Day055.test.add(1,10))
from Day055.test import add
print(add(10,100))