random模块
random()
产生随机数
randrange()
randrange(a,b,n)产生[a,b),步长为n的随机数
randint()
randint(a,b) 产生[a,b]内的随机数
r = random.random()
print(r)#0.361034828962297
r1 = random.randrange(1,10,2)
print(r1)#9
r2 = random.randint(1,10)
print(r2)#8
choice()
返回一个列表,元组或字符串的随机元素。
l = ['11','221','2223']
r = random.choice(l)
print(r)#11
shuffle()
打乱顺序
l = ['11','221','2223','2','324']
random.shuffle(l)
print(l)#['2223', '11', '324', '221', '2']
应用:产生验证码
def ma():
code = ''
for i in range(4):
r1 = str(random.randint(0,9))
r2 = chr(random.randint(65,90))
r3 = chr(random.randint(97,122))
code += random.choice([r2,r1,r3])
return code
print(ma())
time和datetime
time模块
sleep(sec)
推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。
time()
时间戳
ctime()
时间戳转换为字符串
localtime()
时间戳转换为元组
mktime()
时间元组转换为时间戳
strftime()
strftime(format[, t]) 时间元组转换为可读字符串表示的当地时间,格式由参数 format 决定。
strptime()
strptime(string[, format]) 把时间字符串解析为时间元组。
时间格式
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
import time
time.sleep(1)
t = time.time()#时间戳
print(t)#1628479939.6939673
s = time.ctime(t)#将时间戳转换为特定字符串
print(s)#Mon Aug 9 11:32:19 2021
l = time.localtime(t)#将时间戳转换为特定元组
print(l)#time.struct_time(tm_year=2021, tm_mon=8, tm_mday=9, tm_hour=11, tm_min=32, tm_sec=19, tm_wday=0, tm_yday=221, tm_isdst=0)
tt = time.mktime(l)#将时间元组转换为时间戳
print(tt)#1628479939.0
date_time = time.strftime("%Y-%m-%d, %H:%M:%S")#时间元组转为字符串
print(date_time)#2021-08-09, 11:32:19
struct_time = time.strptime("30 Nov 00", "%d %b %y")#时间字符串转为元组
print(struct_time)#time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
datetime模块
time()
时间
date()
日期
datetime()
时间日期
datetime.datetime.now()
#现在的日期时间
datetime.date.today()
#当天的日期
timedelta()
时间差
用于缓存:如redis 作为保存 redis.set(key,value,时间差)
import datetime
import time
print(datetime.time.hour)#无法看到具体的数值,是一个对象
th = time.localtime().tm_hour#通过time模块的localtime方法可以看
print(th)#11
print(datetime.date.day)#无法看到具体的数值,是一个对象
print(datetime.datetime.now())
print(datetime.date.today())
print(datetime.timedelta(days=2,hours=2))#2 days, 2:00:00
print(datetime.date.today()-datetime.timedelta(days=1,hours=1))#返回今天的一天一小时前的日期