python模块
python模块
模块(module):在python中,xxx.py就是一个模块。
python常见模块:
一.math:该模块主要用于数学和相关计算的一个模块
属性:
1.pi ----- 圆周率
2.e ----- 自然常数
方法:
1.三角函数 sin cos……
2.对数 log lg ……
3. ceil ----- 向上取整
4. floor ----- 向下取整
5. fabs ----- 绝对值
6. sqrt ----- 开平方
7. pow ----- 幂次方
二、random:
1、 random.random() # 随机[0~1) 区间
2、random.randint() # [a, b] 区间的随机整数
3、 random.uniform # [a, b] 区间的随机数
4、random.choice(容器) # 随机选择一个元素
5、random.shuffle(容器) # 洗牌,随机打散数据
三、uuid: UUID是128位的全局唯一标识符,通常由32字节的字符串表示。它可以保证时间和空间的唯一性,也称为GUID。
uuid主要有五个算法,也就是五种方法来实现:
1、uuid1()——基于时间戳
由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性,
但MAC的使用同时带来安全性问题,局域网中可以使用IP来代替MAC。
2、uuid2()——基于分布式计算环境DCE(Python中没有这个函数)
算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。
实际中很少用到该方法。
3、uuid3()——基于名字的MD5散列值
通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,
和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的uuid。
4、uuid4()——基于随机数
由伪随机数得到,有一定的重复概率,该概率可以计算出来。
5、uuid5()——基于名字的SHA-1散列值
算法与uuid3相同,不同的是使用 Secure Hash Algorithm 1 算法
四、os:提供了非常丰富的方法用来处理文件和目录。
curdir # 返回当前路径,相对路径
getcwd() # 获取绝对路径,注意返回字节
chdir(path) # 修改当前工作空间路径
cpu_count() # 获取当前电脑的核(线程)数量
chmod() # 修改权限(Linux)
defpath() # 默认查找文件路径
device_encoding # 文件编码
getpid() # 获取当前进程的编号
getppid() # 获取当前进程的父进程编号
kill # 杀死进程
linesep # 获取当前系统的换行符
listdir() # 获取当前工作空间下的文件及文件件,返回列表
scandir # 获取当前工作空间下的文件及文件件,返回一个迭代器
mkdir # 创建目录,只能创建一级目录
makedirs() # 创建目录,可以递归创建多级
open() # 打开或者创建文件
remove() # 删除文件
removedirs() # 删除目录
rmdir # 删除目录
rename # 重命名
sep # 路径分隔符
stat() # 返回文件状态
五、sys:
argv # 脚本传参
exit() # 退出系统
getdefaultencoding() # 获取系统的默认编码
getfilesystemencoding() # 获取文件编码
setrecursionlimit(num) # 设置递归的极限值
getrecursionlimit() # 获取递归的极限值
getrefcount() # 获取对象的引用计数
垃圾回收算法:
引用计数法:所有对象都有引用计数。给一个对象分配一个新名称,或是将其放入一个容器,都会增加该对象的引用计数
缺点:循环引用时,就无法回收内存。
六、time 和 datetime:
asctime() # 返回一个日期字符串
ctime() # 返回一个日期字符串
gmtime() # 获取一个时间对象
localtime() # 获取一个时间对象
time() # 获取当前时间戳
sleep(sec) # 休眠
strftime() # 格式化时间
strptime() # 将一个字符串格式时间,转换为日期对象
datetime模块:
time([hour[,minutes][,seconds]]) # 构建一个时间对象
date(year,month,day) # 构建一个日期对象
datetime子模块:
astimezone(时间对象) # 返回当前时区对应的时间对象
datetime.now() # 返回当前时间对象
ctime(时间对象) # 一个符合欧美标准的时间字符串
time(时间对象) # 返回时间对象的时间部分
date(时间对象) # 返回时间对象的日期部分
七、calendar(日历模块):
1、calendar.calendar()----- 获取本年日历
八、hashlib:
加密学:如果通过秘钥是否同一个,可以将加密算法。
1、对称加密:DES
2、非对称加密
加密的秘钥和解密秘钥并不是使用同一个rsa,生成一对秘钥,公钥和私钥。
3、哈希加密(hash)、散列加密
不可逆加密、单向、结果是唯一的。
md5
shal256
shal384
……