Python常用模块之random和time
2024-09-05 05:34:31
常用模块:
time:
分为三种格式:
- 1.时间戳:从1970年1月1日0点0分0秒到现在经过的秒数
- 用于时间间隔的计算
import time
print(time.time())
- 2.字符串显示时间
- 用于展示时间,更符合人类认知
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
# 2020-08-11 19:45:05 PM
print(time.strftime('%Y-%m-%d %X'))
# 2020-08-11 21:18:19
print(time.asctime())
# Wed Aug 12 21:20:31 2020
- 3.结构化显示时间
- 用于单独获取时间某一部分
print(time.localtime())
# time.struct_time(tm_year=2020, tm_mon=8, tm_mday=11, tm_hour=21,tm_min=30, tm_sec=18, tm_wday=1, tm_yday=224, tm_isdst=0)
# 显示格里尼治标准时间,比中国慢8个小时,中国是东8区
print(time.gmtime())
# 9个字段:
# 年份,月份,日份,小时,分钟,秒, 星期(从0-6,0表示周一),一年的第几天,是否是夏令时
- 若要显示单独某个字段
# 显示年份
print(time.localtime().tm_year)
# 2020
# 显示当前是一年中的第几天
print(time.localtime().tm_yday)
# 224
三种格式时间转换
- 时间戳转结构化
tp_time = time.time()
pritn(time.localtime(tp_time))
# 默认是当前时区时间,也可自定义时间戳
print(time.localtime(666666666))
# time.struct_time(tm_year=1991, tm_mon=2, tm_mday=16, tm_hour=9, tm_min=11, tm_sec=6, tm_wday=5, tm_yday=47, tm_isdst=0)
# 以格里尼治标准时间为基数
print(time.gmtime(666666666))
# time.struct_time(tm_year=1991, tm_mon=2, tm_mday=16, tm_hour=1, tm_min=11, tm_sec=6, tm_wday=5, tm_yday=47, tm_isdst=0)
- 结构化转时间戳
st_time = time.localtime()
print(time.mktime(st_time))
- 结构化转字符串
st_time = time.localtime()
pritn(time.strftime('%Y-%m-%d %H:%M:%S',st_time))
# 2020-08-12 20:43:46
# 需要两个参数,前面是格式,后面是结构时间参数
- 字符串转结构化
print(time.strptime('2020-08-12 20:43:46','%Y-%m-%d %H:%M:%S')
# 两个参数的格式必须要对应
time模块字符串格式无法直接转换成时间戳,需要通过结构化时间转换
- 时间戳转格式化字符串
# 首先将时间戳转换为结构化,再转换为格式化字符串
s_time = time.localtime(666666666)
print(time.strftime('%Y-%m-%d %H:%M:%S',s_time)) # 1991-02-16 09:11:06
- 格式化字符串转时间戳
# 首先将格式化字符串转结构化,再将结构化转时间戳
struct_time = time.strptime('2020-8-13 13:12:20','%Y-%m-%d %H:%M:%S')
print(time.mktime(struct_time)) # 1597295540.0
datetime:
- 格式化显示时间
# 当前时区时间
print(datetime.datetime.now())
# 2020-08-12 21:21:56.192434
# 格林尼治时间
print(datetime.datetime.utcnow())
# 2020-08-12 13:21:56.209435
- 时间运算
# 显示三天后
print(datetime.datetime.now() + datetime.timedelta(days=3)
# 2020-08-15 10:11:23.132590
# 显示三天前
print(datetime.datetime.now() + datetime.timedalta(days=-3)
print(datetime.datetime.now() - datetime.timedelta(days=3)
# 2020-08-09 10:14:34.984563
# 显示三年后
print(datetime.datetime.now() + datetime.timedelta(days = 365*3))
# 2023-08-12 10:17:01.263930
- 时间戳转格式化字符串时间
print(datetime.datetime.fromtimestamp(666666666))
# 1991-02-16 09:11:06
random:
- 此模块提供了伪随机数获取相关的方法
- random.random():获取[0,1.0)范围内的浮点数
import random
print(random.random())
- random.randint(a,b):获取[a,b]范围内的一个整数
print(random.randint(1,3))
# 1,2,3都能取到
- random.uniform(a,b):获取[a,b]范围内的浮点数
print(random.uniform(1.1,1.2))
- random.randrange(start,stop[,step]):获取[star,stop)之间的整数,可以指定步长
print(random.randrange(1,4))
# 获取[1,4)之间的整数,可以获取到1,2,3
print(random.randrange(1,4,2))
# 可以获取到1,3
- random.choice(seq):从非空序列seq返回一个随机元素。如果seq为空,则报错
li = [1,2,3,'a','b','c']
print(random.choice())
# 返回结果为列表内的一个随机元素
- random.sample(x,k):从x中随机抽取k个数据,组成列表返回
li = [1,2,3,'a','b','c']
print(random.sample(li,3))
# 取列表内随机三个元素,组成列表返回
- random.shuffle(x):混洗。将参数指定的数据中的元素打乱。参数必须是可变的数据类型
random.shuffle(li)
print(li)
# random.shuffle()打乱的是原对象的顺序
- 应用:随机验证码
import random
def make_code(size=6):
res = ''
for i in range(size):
num = str(random.randint(0,9)) # 随机产生一个整数
st1 = chr(random.randint(65,90)) # 获取65-90之间的的整数,通过chr函数转换成大写字母
st2 = chr(random.randint(97,122)) # 获取一个随机小写字母
res += random.choice([num,st1,st2]) # 每次取得其中一个字符,与res累加
return res
print(make_code())
最新文章
- ubuntu 13.10 monodevelop3 安装
- osg设置相机参数,包括初始位置
- sqlserver 解析Json字符串
- django internal search
- Python:操作文件
- Javascript核心概述 - 深入了解javascript
- 从bug中学习怎么写代码
- z-index 所遇问题
- SQLSERVER执行时间统计工具SQLQueryStress
- xtrabackup 链接不上MySQL的问题
- ZOJ 3203 Light Bulb - 求导求最大值
- chrome谷歌浏览器开发者工具-网络带宽控制
- JAVA数组和集合谁是儿子
- net core 部署到windows 服务
- CISCO ACL配置
- vue2.0获取自定义属性的值
- Day 1: ASP.NET and JavaScript Jan.16th Trying
- JavaScript 装饰者模式(this运用)
- c++之数组形参
- 20-java 对象链表空没空呢