导入及使用模块
1.import
在python中,可以使用import关键字来导入某个模
import 模块
在调用该导入模块中的函数时,使用如下
模块名.函数名
#导入数学模块
import math
#圆周率
a=math.pi
#返回上入整数
b=math.ceil(7.1)
#返回下舍整数
c=math.floor(7.9)
print(a)
print(b)
print(c)
2.
from…import…
只需要使用模块中的某个函数,就可以只引入该函数即可,使用函数时直接:
函数名1()
上边你的例子可以写成
#导入数学模块
from math imoport pi,ceil,floor
#圆周率
a=pi
#返回上入整数
b=ceil(7.1)
#返回下舍整数
c=floor(7.9)
print(a)
print(b)
print(c)
3.from…import *
从模块中导入所有函数,一次性加载该模块所有内容,不建议过多使用
定位模块
当导入一个模块后,python解释器对该模块所在的具体位置的搜索顺序应该是:
(1)当前 Python 文件所在的目录下;
(2)若不在当前目录下,则会搜索环境变量 PATH 下的每个目录下是否存在该模块(3)若在上述两种方式都未找到,Python 解释器会查看默认路径(安装的 Python 解释器的路径)。在 UNIX及类 UNIX 操作系统下,默认路径一般为/usr/local/lib/python/;
(4)除了上述所有方式外,模块搜索路径通常存储在 system 模块(sys)的 sys.path 变量中。该变量里包含当前目录、PATH 和由安装过程决定的默认目录等。
import sys
print(sys.path)
查看所有内置模块
import sys
#查看所有内置模块信息
sys.modules.keys()
制作模块
上述中已经学会导入并使用python给开发者提供的模块,若想要使用自定义的模块,就需要先定义模块,在去调用使用它。
首先在py文件同文件夹下创建一个.py文件—–util文件
#coding:utf-8
#求和
def get_sum(a,b):
return a+b
#求积
def get_multiply(m,n):
return m*n
#调用
if __name__ == "__main__":
print("util模块中测试调用:",get_sum(1,1)) #2
print(__name__) #属性
然后代码:
import util
print(util.get_sum(5,16))
在实际的项目开发中,若某个文件开发者编写完一个可供大家使用的模块后,通常会在该模块下进行一些测试,比如上述的
上边的from…import *可以一次性导入某模块下的全部内容,若在自定义模块中,不想让外部一次性调用全部函数内容,可以采用__all__变量来进行相关处理
#变量
__all__=["test1","test2"] #其他文件里只能调用这俩函数
包
python中包类似于文件系统中的文件夹。功能:
(1)允许 Python 模块组成较小的单元(类似文件夹);
(2)易于找到和使用相应的文件;
(3)更好地保护 Python 模块、数据和函数;
(4)防止命名冲突。
创建包
当有多个模块功能相似时,可将它们放在同一个文件夹下,还需要在该文件夹下新建伊特__init__.py文件来控制包及模块的导入行为。
使用包
from 包名 import 模块名
from 包名 import *
发布模块
(2)在 msg 目录下,需要重新创建 **setup.py(启动)**文件并编辑,且参数
py_modules
需指明所需包含的 py文件详细内容,如下:
from distutils.core import setup
setup(name="Jimy", version="1.0", description="Jimy's module",
author="Jimy", py_modules=["message.sendMsg", "message.receiveMsg"])
"""
name: 英文名
version: 版本 -->发布后:形成 name-version.tar.gz name-version.zip Jimy-1.0.tar.gz
description:描述内容 文档说明
author:作者
py_modules:Python模块 -->模块
"""
(3)创建 builde 模块,使用命令先进入到 msg 目录下(DOS 命令 cd),再执行“python setup.py build”命令,创建后生成的目录结构如下:
(4)生成并发布为压缩包,可使用“python setup.py sdist”命令进行打包并最终生成可供发布的压缩包文件 Jimy-1.0.zip.
上述的压缩包文件 Jimy-1.0.zip 即为最终发布成功后,可供外部安装与使用的模块。
使用
当模块安装完毕后,就可以进行使用了,与正常使用模块时一致,需要使用from 包名 import 模块名或* 进行导入
from message import *
sendmsg.send()
receivemsg.receive()
运行后:
常见模块
1.sys
2.random
用于生成随机数,常用函数有
random() 返回随机生成的一个实数,它在[0,1)范围内。
randint(st,en) 返回一个随机整数,且该数的取值范围为[st,en]内。 –可以取到。
randrange(st,en) 返回指定 st 至 en 范围内的一个随机数。
3.time
time 模块用于提供时间的各种相关操作一般而言,对于时间有两种不同的表示方式,如下:(1)以时间戳(时间轴)的方式显示,且时间戳是惟一的,即相对于 1970.1.1 00:00:00 以秒计算的偏移量,也就是毫秒值;
(2)以数组(列表)的形式表示(共有九个不同的元素组成),如 2018:01:01 类的显示,且对于不同地区中,同一个时间不会因为时区不同而不同。
strftime(f,t) 将时间对象转换为规范性字符串,参数 f 表示格式代码,参数 t 表示时间象。
strptime(x,f)将时间字符串根据指定的格式化符转换成数组形式的时间,参数 x 表示时间字符串,参数 f 表示格式代码。
4.datetime
5.hashlib
hashlib模块用于加密的相关操作,代替了md5模块和sha模块,主要提供 MD5,SHA1, SHA224, SHA256, SHA384,SHA512 等加密算法
# coding:utf-8
import hashlib
info="123456"
hash_sha1=hashlib.sha1()
hash_sha1.update(info.encode("utf-8"))
print("二进制的加密结果:",hash_sha1.digest())
print("十六进制的加密结果:",hash_sha1.hexdigest())