时间模块
1. time模块
1.1 时间显示常用的三种模式
1.1.1 时间戳:从1970-01-01年到现在经过的秒数 应用:主要用来计算时间间隔,如计算一个函数运行的时间
import time
print(time.time()) # time.time为时间戳函数
1.1.2 按照某种指定格式显示的时间:如当前时间:2022-8-24 02:49 应用:主要用于展示当前时间,如日志功能
import time
print(time.strptime('%Y-%m-%d %H:%M:%S %p'))
# 每一个字母(大小写敏感)都是固定的,由首开始依次对应对应年、月、日、小时、分钟、秒、上午or下午
# 详情可点开time.strptime查看格式format
1.1.3 结构化的时间 应用:查看当日是星期几、是一年中的第几天等
import time
res = time.localtime()
# 显示现在的时间,并显示当前是星期几、是一年中的第多少天 显示今天星期几(res.tm_wday)、一年中第几天等
print(res)
1.2 三种模式之间的转换:
1.2.1 将结构化的时间转换为时间戳 struct_time --> timetamp
import time
s_time = time.localtime()
print(time.mktime(s_time)) # 应用的是mktime()方法
1.2.2 将时间戳转换为结构化时间 timetamp --> struct_time
import time
print(time.localtime(time.time())) # 应用的是localtime()方法
1.2.3 struct_time --> 字符串格式
import time
s_time = time.localtime()
print(time.strftime('%Y-%m-%d %H:%M:%S', s_time)) # 应用的是strftime()方法
1.2.4 字符串格式 --> struct_time
import time
str_time = '2000-10-11 09:11:00'
print(time.strptime(str_time, '%Y-%m-%d %H:%M:%S')) # 应用的是strptime()方法
# 需求:将字符串格式转化为时间戳: # 字符串格式 --> timetamp
# 应用场景:用户在续约自己的VIP后,为其VIP时间加上相应的时长
但从文件中拿到的是用户VIP的注册时间,是字符串,不能进行加减,故需转为时间戳进行计算
# 各位可以通过已经写出的两种模式之间的转换而满足该需求,这里不过多赘述
1.3 time模块的一些其他方法
time.gmtime() # 返回世界标准时间,即位于本初子午线的时间
time.asctime() # time.asctime()相当于time.strptime('%Y-%m-%d %H:%M:%S'),更省事,不过日期是英文的
2.datatime模块
2.1 datatime常用方法
import datetime
datetime.datetime.now() # 返回现在的时间
datetime.datetime.now() + datatime.timedelta(day=n)
# 返回n天前/后(-/+)的时间,timedelta用于时间的加减,也可以以Week等为单位操作
2.2 datatime模块的一些其他方法
datatime.datatime.utcnow() # 返回世界标准时间
datatime.datetime.fromtimestamp(timetamp) # 是一种将时间戳 --> 字符串格式较为关键的方法
# 参数timetamp为需要转换的时间戳
2.3 datatime的应用举例
基于实际需求可与time模块相互补充,其优点在于获取常见的显示时间的模式是较为简单的
random模块
1. random模块常用方法的使用与说明
import random
print(random.random()) # 一个大于0且小于1之间的浮点数
print(random.randint(1, 3)) # [1,3]区间内任意一个整数
print(random.randrange(1, 5)) # [1,5)的任意一个整数 前开后闭
print(random.choice([1, '23', [8, 12] ]))
# 该列表中任意一个元素,可以是1,可以是字符串23,可以是列表[8,12]
print(random.sample([1, '23', [5, 6]], 2)) # 该列表中任意n个元素组成的列表
print(random.uniform(1, 3)) # 一个大于1小于3的数
item = [1, 3, 4, 5, 6, 7, 8]
random.shuffle(item) # 随机打乱一个列表元素的排列顺序
print(item)
2. random模块应用举例:随机验证码
import random
prove_code_db = 'asoidj12312' # 创建一个可能出现元素的集合的字符串
res = ''
for i in range(6):
res += random.choice(prove_code_db) # 在集合中随机选一个后就加到空字符串后
print(res)
以上部分代码建议各位可以封装到自己的常用函数包里,有需求时直接调用
不正之处,恳请各位不吝批判指正