python之内置模块
常用的内置模块
random库
import random
# 获取随机的整数
res = random.randint(10, 20) # [10,20]
print(res)
# 获取随机的小数
res2 = round(random.uniform(10, 20), 2)
print(res2)
# 从列表中随机获取一个元素
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
res3 = random.choice(list1)
print(res3)
# 从列表中随机获取n个元素
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
res3 = random.sample(list1,2)
print(res3)
print('-----------------------------')
# 随机打乱顺序
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
random.shuffle(list1)
print(list1)
hashlib库
主要用于数据加密 sha256(可逆) md5(不可逆)
import hashlib
#获取MD5加密对象
md5_object = hashlib.md5()
#修改数据加密编码
md5_object.updata(info.encod('utf-8'))
#调用方法开始加密
res1= md5_object.hexdigest()
print(res1)
一般情况下,我们再做MD5加密算法时,适当进行加盐处理,因为可能会导致不同的数据,在加密后结果会一样
md5_object = hashlib.md5('加盐字符串'.encode('utf-8'))
json库
-
本质上其实是一个字符串,有一些特殊格式的字符串
-
序列化与反序列化
- 序列化:将自己文本数据。程序中的数据变成网络中传输的数据
#将网络中符合json格式的字符串,转变为python中的数据类型 import json data= json.loads('json格式的字串')
- 反序列化: 将网络中传输的数据,转变成程序中的数据或者文本数据
import json # dict1 为网络中传输的数据 data = json.dumps(dict1,ensure_ascill=False)
time库
时间戳相关
time.time() # 时间戳 毫秒级别 整数部分秒级别
datetime库
日期相关
from datetime import datetime
#时间戳 毫秒级别
s1=time.time()
#获得日期
s1=datetime.now()
#日期格式化
s2=s1.strftime("%H:%M:%S %y-%m-%d")
# 字符串-->datetime类型 strptime()
s1 = "2024-01-12"
s1 = datetime.strptime(s1, '%Y-%m-%d') # 格式要与字符串的格式一致
print(s1, type(s1))
print('-------------------')
# datetime类型--> 字符串
s2 = datetime.now().strftime("%H:%M:%S %Y/%m/%d")
print(s1,type(s2))
print('-------------------')
# datetime-->时间戳
s3 = datetime.now() # datetime类型
s3 = s3.timestamp()
print(s3,type(s3))
print('-------------------')
# 时间戳-->datetime类型
res = datetime.fromtimestamp(s3)
print(res)
res = res.strftime("%Y/%m/%d %H:%M:%S")
print(res)
# 时间戳-->datetime类型-->字符串
s4 = datetime.fromtimestamp(1705028697).strftime("%Y/%m/%d %H:%M:%S")
print(s4)
拼接字符串有中文
s5 = datetime.fromtimestamp(1705028697)
print(s5,type(s5))
time_str = f'{s5.year}年{s5.month}月{s5.day}日 {s5.hour}时{s5.minute}分{s5.second}秒'
print(time_str)
os系统文件模块
#将路径进行拼接 data/user.text
s1=os.path.join('data','user.txt')
#获得文件s1的父级目录
os.path.dirname(s1)
#获取当前文件所在的绝对路径的父级目录 abspath(__file__)获取当前文件所在绝对路径
os.path.dirname(os.path.abspath(__file__))
#判断路径是否存在
os.path.exists(所判断的文件)
#判断文件是否存在
os.path.isdir()
#创建文件夹 如果创建文件的话,就使用open()的方式创建
os.makedirs()
#删除文件
os.remove()
#删除文件夹
os.rmdir()
#查看目录下的文件和文件夹
res1=os.walk()
#a1: 表示当前文件夹路径
#a2: 表示当前路径下文件夹的列表
#a3: 表示当前路径下的文件列表
for a1,a2,a3 in res1:
异常处理
- 什么是异常: 程序运行过程中出现的不正常情况
异常分类
- 错误:代码语法有问题
- 异常: 一般在程序运行的时候
处理异常
# try...except...语句
try:
#可能会出现问题的代码
except:
#如果try里面的代码出现了问题,就会运行这里的代码,如果不会出问题,就不会运行
else: #当try中的代码没有问题时会执行
finally:
#无论try中的代码是true还是false,都会执行,除非在运行finally之前突然退出程序
#作用在通常情况下,是释放资源
- 异常处理的好处
- 让程序能进行下去
- 能够解决一些判断的复杂业务逻辑