什么是模块
py文件或py文件的集合,为完成某一特定功能的而写的代码
模块的分类
根据作者而分:
- 系统模块(python官方提供的、内置的模块)又称内置模块
特点:已经安装在系统中,使用时需要导入,builtins默认被导入 - 第三方模块(非官方的,由第三方提供的)
特点:必须安装才能使用 - 自定义模块
特点:自己编写的py文件 可导入到其他py文件中使用
模块的导入
- 单层
import package - 多层
import package.module
from package import module
常见的模块
今天我们来学习常见系统模块(内置模块)及其常用方法:
-
random模块:产生一个随机数 使用前必须导入 import random
dir(random):查看模块的所有方法
help(random)帮助文档:当某一方法不知道使用方法时,可调用帮助文档
random():返回一个【0,1)随机数,伪随机数(基于一个算法实现的)
randint(m,n):返回一个【m,n】的随机整数
choice(seq):返回一个非空序列中的随机值
randrange(m,n):返回一个【m,n)的随机整数
-
math模块:该模块存在与大量语言中,一般这个模块都是操作数学元素的,import math
dir(math):查看math模块所有方法
ceil():向上取整,只要小数位有值,一般向上取整
floor():向下取整,只要小数位有值,一般向下取整
pi:属性,圆周率π
fabs():求绝对值
fmod(x,y):求模,x%y
pow(x,y):幂次方 x的y次方
sqrt(x):求x的平方根
注:以下模块不好演示,在此只介绍其常用方法及作用 -
os模块:主要用来操作 系统中的文件系统
dir(os):查看os模块的所有方法
curdir:该属性表示当前路径,但显示的是相对路径
getcwd():获取当前路径,显示的是绝对路径
chdir(path):改变当前工作目录
chmod():修改权限
cpu_count():获取当前CPU核数
listdir():遍历得到当前工作空间的所有文件,以列表的形式返回
mkdir():创建文件夹,注:只能创建一层
makedirs():可创建多级文件夹
remove():删除文件
removedirs():删除文件夹,可以多级删除
rename(src,dst):重命名
rmdir():删除文件夹,只能删一级(默认最后一级)
scandir():遍历得到当前工作空间的所有文件,返回一个迭代器
sep():返回系统对应的文件分隔符
system():该方法可以执行该系统对应的所有终端命令 -
os.path模块:os模块的子模块,主要是用来操作文件的
abspath():显示相对路径的绝对路径
basename():显示路径对应的文件名称
exists():判断文件或文件夹是否存在
getsize():获取文件大小
isdir():判断是否是目录
isfile():判断是否是文件
join():拼接路径
split():分隔文件路径 -
sys模块
重要的方法,必须掌握:
argv():返回脚本名称和执行脚本时传递的参数
exit():退出系统
getdefaultencoding():获取系统的默认编码
getfilesystemencoding():获取系统文件的编码
getrecursionlimit():获取系统对于递归的层数限制
setrecursionlimit():设置系统对于递归的层数限制,不建议使用
getrefcount():获取变量的引用计数
path():返回系统变量路径列表
不重要,仅作了解:
platform():返回系统平台
stderr():标准错误输出
stdin():标准输入
stdout():标准输出
thread_info():线程信息
version():解释器版本信息
version_info():解释器内核版本信息 -
hashlib模块:编程中,进行加密
md5.():MD5加密
用法:
#第一种写法
import hashlib
md5 = hashlib.md5("要加密的数据".encode("utf-8"))
md5.update("aishangwang".encode("utf-8")) #盐值混淆
md5.hexdigest() #得到需要加密数据的散列值
#第二种写法
md5 = hashlib.md5()
md5.update("要加密的数据".encode("utf-8"))
md5.update("aishangwang".encode("utf-8"))
md5.hexdigest()
加密算法的分类
以是否可逆来分:
-
可逆算法
1、对称加密算法(加密解密使用一个密钥)
2、非对称加密算法(加密解密使用一对密钥) -
不可逆算法
1、hash算法:唯一性,不可逆性(MD5,shale256,…)可以将任何东西加密为32位的16进制的字符串
注:MD5安全问题,有数据碰撞的概率,使用hash时,建议使用盐值混淆
注:python的垃圾回收机制:以引用计数为主,已标记清除和分代收集为辅 -
time模块:python中专门用来操作时间和日期的模块
sleep(x):让当前线程暂停x秒
time():返回的是当前时间戳,1970-1-1 0:0:0 到当前时间的秒数
ctime():获取当前时间
localtime():返回本地时间对象
strftime():将一个时间对象格式化为特定字符串
strptime():将一个特定字符串解析为时间对象 -
datetime.datetime模块:
now():获取当前系统时间