time 模块:与时间相关的功能的模块
在 Python 中,时间分为三种:
1、时间戳:是一个时间的表示,根据不同的语言,可以是整数或浮点数,是从1970年1月1日0时0分0秒到现在经历的秒数
2、UTC时间: 又称为世界协调时间,以英国的格林尼治天文所在地区的时间作为参考的时间,也叫做世界标准时间。中国时间是 UTC+8 东八区
3、localtime:本地时间,又叫时间元组,是一个包含时间内容的普通元组
import time
print(time.localtime())
# 运行
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=14, tm_min=44, tm_sec=34, tm_wday=0, tm_yday=288, tm_isdst=0)
# 相应参数
# 索引 内容 属性 值
# 0 年 tm_year 2015
# 1 月 tm_mon 1~12
# 2 日 tm_mday 1~31
# 3 时 tm_hour 0~23
# 4 分 tm_min 0~59
# 5 秒 tm_sec 0~61 60表示闰秒 61保留值
# 6 周几 tm_wday 0~6
# 7 第几天 tm_yday 1~366
# 8 夏令时 tm_isdst 0,1,-1(表示夏令时)
时间模块的属性
# 获取时间戳 返回浮点型
print(time.time())
# 获取当地时间 返回的是结构化时间
print(time.localtime())
# 时间戳 转结构化
print(time.localtime(time.time()))
# 结构化 转时间戳
print(time.mktime(time.localtime()))
# 获取UTC时间 返回的还是结构化时间 比中国时间少8小时
print(time.gmtime())
# 将获取的时间转成指定的格式 仅支持结构化时间
print(time.strftime("%Y-%m-%d %H:%M:%S %p", time.localtime()))
# 将格式化字符串的时间转为结构化时间 注意: 格式必须匹配
print(time.strptime("2018-10-15 15:00:18", "%Y-%m-%d %H:%M:%S"))
# sleep 让当前进程睡眠一段时间 单位是秒
time.sleep(2)
print('over')
# 接受时间元组并返回一个可读的形式为"Mon Oct 15 15:09:24 2018"的24个字符的字符串。
print(time.asctime())
# 获取字符串化的当前时间
print(time.ctime())
datetime 模块:提供日期和时间运算表示的模块
datetime常用属性
import datetime
# 获取当前时间 返回的是格式化字符时间
print(datetime.datetime.now())
# 单独获取某个时间 年 月
d = datetime.datetime.now()
print(d.year)
print(d.day)
# 手动指定时间
d2 = datetime.datetime(2018,10,10,10,10,10)
print(d2)
# 计算两个时间的差 只能减不能加
print(d - d2)
# 替换某个时间
print(d.replace(year=2020))
# 表示时间差的属性 timedelta
print(datetime.timedelta(days=1))
d = datetime.datetime.now()
t1 = datetime.timedelta(days=1)
t2 = datetime.timedelta(weeks=1)
print(t2 - t1)
# 时间差可以和一个datetime进行加减
print(d + t2)
random 模块:随机数模块
# random() 获取0-1之间的随机小数
# 格式:random.random()
# 返回值:随机0-1之间的小数
print(random.random())
# 运行
0.4549137928915099
# choice() 随机返回序列中的某个值
# 格式:random.choice(序列)
# 返回值:序列中的某个值
l = [str(i)+"haha" for i in range(5)]
print(l)
rst = random.choice(l)
print(rst)
# 运行
['0haha', '1haha', '2haha', '3haha', '4haha']
3haha
# shuffle() 随机打乱列表
# 格式:random.shuffle(列表)
# 返回值:打乱顺序之后的列表
l1 = [i for i in range(5)]
print(l1)
random.shuffle(l1)
print(l1)
# 运行
[0, 1, 2, 3, 4]
[2, 3, 0, 4, 1]
# randint(a,b): 返回一个a到b之间的随机整数,包含a和b
print(random.randint(0,100))
# 运行
46
# randrange(a,b): 返回一个a到b之间的随机整数,包含a不包含b
print(random.randrange(0,2))
# 运行
0
# 随机选指定个数
print(random.sample([1,2,3],2))
# 运行
[2, 3]
实现随机验证码,整型和全大写字符,可指定长度
def make_code(i):
res = ""
for j in range(i):
# 随机0到9
num = str(random.randint(0,9))
c = chr(random.randint(65,90))
s = random.choice([num,c])
res += s
return res
print(make_code(4))