day15、常用的模块,time模块使用,hashlib的使用
常用模块=====
1、数学模块
- math - 普通数学模块
print(int(-2.9),(2.9)) #-2 2
#向小取整
print(math.floor(-2.9),math.floor(2.9)) # -3 2
- cmath - 复数的数学模块
2、随机模块
- random.randint(m,n) - 产生[m,n]的随机数
- random.random() - 产生[0,1)的随机数
#[1,100)的随机小数
print(random.random()*100)
# [50,100)的随机小数
print(random.random()*50+50)
- random.shuffle(列表) - 随机打乱列表中的元素
- random.choice(列表) - 从列表中随机获取一个元素
- random.choices(列表,k=N)- 从列表中随机获取N个元素
3、os模块
- os.chdir(路径) - 将指定路径对应的目录修改成当前目录(默认情况下当前目录是当前py文件所在目录)
- os.getcwd() - 获取当前目录的全路径
问题:创建文件/文件夹,删除文件/文件夹,判断是否是文件/文件夹、判断文件/文件夹是否存在
1.创建文件/文件夹: os.makedirs(‘文件夹名字’) ;os.open(‘路径文文件名字’,flags=os.O_CREAT)
2、删除文件/文件夹:os.remove(‘文件名字’) ;os.rmdir(‘文件夹的名字/路径’)
3、判断是不是文件:os.path.isfile(“abc”) 返回值是bool;判断是不是文件夹:os.path,isdirs(‘文件夹路径’)
4、os.path.exists(‘文件夹名/文件名’) # 判断存不存在
time模块=====
时间戳:以秒为单位,表示格林威治时间1970年1月1日0时0分0秒的时间差
时间戳特点:保存时间的时候保存时间戳要比直接保存时间信息更加节约内存;对时间戳进行加密比字符串时间加密要方便
1、time.time() - 获取当前时间(返回的是当前时间的时间戳)
2、time.localtime() - 获取当前的本地时间,返回struct_time对象
- time.localtime(时间戳) - 获取时间戳对应的本地时间,返回struct_time对象
3、time.strftime(时间,格式字符串,结构体时间)- 将结构体转换成指定格式的字符串时间
'2020/10/19'
t1 = time.time() # 获取当前时间的时间戳
t2 = time.localtime(t1) #将时间戳转化为本地时间,t2结果为结构体时间
s1 = time.strftime('%Y/%m/%d',t2)
星期一 下午3:38
s2 = time.strftime('%A %p%H:%m',t2)
print(s2) #Mon PM15:38
Mon PM15:38 将这个时间转换为中国时间:星期一 下午15:38
def China_time(t_str:str):
table = {
'PM':'下午',
'AM':'下午',
'Monday':'星期一'
'Mon':'星期一'
}
for key in table:
t_str = t_str.replace(key,table[key])
return t_str
print(China_time(s2)) #星期一 下午15:38
hashlib=====
1、hashlib模块主要提供hash加密相关的算法来对数据进行加密处理
2、hash加密(hash摘要)的特点:
- 加密结果不可逆(不能通过密文/摘要去获取到原文)
- 同一个数据通过相同的算法加密之后的结果是一样的
- 不同的数据通过相同的算法加密之后的长度相同
3、hash摘要的应用场景:
- 密码保存
- 数据完整性的验证
1、根据算法创建hash对象(mad5和shaXXX)
hash1 = hashlib.md5() # hashlib.算法名()
2、添加需要生成摘要/密文的数据
#hash对象.update(数据的二进制) 此处的hash对象就是hash1
hash1.update('123456'.encode(encoding='utf-8'))#j将’123456‘转为二进制数据
3、生成摘要
dig = hash1.hexdigest()
print(dig)