Python标准库 —— time、random
time
- time库
- random库
- random.seed()
- random.randint(a, b)
- random.randrange(a, b [, step])
- random.choice(seq)
- random.shuffle(seq)
- random.sample(seq, k)
- 分布函数中的取值
- random.uniform(a, b)
- random.betavariate(alpha, beta)
- random.traingular(low , high, mode)
- random.expovariate(lambda)
- random.gammavariate(alpha, beta)
- random.gauss(mu, sigma)
- random.lognormvariate(mu, sigma)
- random.normalvariate(mu, sigma)
- random.vonmisesvariate(mu, kappa)
- random.paretovariate(alpha)
- random.weibullvariate(alpha, beta)
time库
用途 | 函数 |
---|---|
时间获取 | time()、gmtime()、ctime()、asctime()、localtime()、mktime() |
时间格式化 | strftime()、strptime() |
程序计时 | clock()、monotonic()、perf_counter()、process_time()、sleep() |
辅助函数 | get_clock_info() |
time.time()
作用:返回一个时间戳(从1970年开始至今的流逝的秒数,浮点型)
例:
time.gmtime([para])
作用:返回一个UTC的struct_time对象
para是一个时间戳,如果不传入则生成当前计算机时间的struct_time对象
例:
struct_time对象
实例化方法:time.gmtime()
timeObj = time.gmtime()
属性:
索引值 | 属性名 | 取值范围 |
---|---|---|
0 | tm_year | 四位整数 |
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仅用于调时 |
6 | tm_wday | [0, 6], 周一为0 |
7 | tm_yday | [1, 366] |
8 | tm_isdst | 0 - DST、1 - 非DST、-1 - 随系统 |
tm_zone | 时区缩写 | |
tm_gmtoff | 与UTC时间相差的秒数 |
time.localtime([para])
作用:返回一个本地的struct_time对象
para:同time.gmtime()
二者对比:
import time
print(time.gmtime())
print(time.localtime())
当前时间是2020-05-10 09:11
time.asctime([para])
作用:返回一个本地的时间的字符串形式
para:接收struct_time类型的参数
例:
time.ctime([para])
作用:返回一个本地的时间的字符串形式
para:接收时间戳(time stamp)类型的参数
例:
time.strftime()、time.strptime()
作用:对字符串进行格式化
struct_time --> (time.strftime()) --> 字符串时间
字符串时间 --> (time.strptime()) --> struct_time
time.strftime(tpl, struct_time)
参数:
- tpl —— 输出字符串时间的模板
- struct_time —— 略
例:
时间的模板字符串
模板 | 含义 | 值域 |
---|---|---|
%Y | 年 | [0000, 9999] ,四位整数 |
%m | 月 | [01, 12], 两位整数 |
%d | 日_月内 | [01, 31] |
%H | 时_24h | [00, 23] |
%M | 分 | [00, 59] |
%S | 秒 | [00, 59] |
%y | 年 | [00, 99],不带世纪的年份 |
%B | 月名 | 如:“November” |
%b | 月名缩写 | 如:“Nov” |
%A | 星期 | 如:“Monday” |
%a | 星期缩写 | 如:“Mon” |
%j | 日_年内 | [001, 366] |
%w | 日_周内 | [0, 6], 0–周日 |
%I | 时_12h | [01, 12] |
%Z | 时区 | :“中国标准时间” |
%p | 上午/下午 | AM, PM |
%% | %号 | % |
time.strptime(str, tml)
参数:
- str —— 字符串形式的时间
- tpl —— 输出字符串时间的模板
例:
time模块的计时问题
时钟名称 | 对应函数 | 说明 |
---|---|---|
clock | time.clock() | 计时时钟 |
monotonic | time.monotonic() | 单调计时时钟,不可更改,时间差有意义 |
perf_counter | time.perf_counter() | 精确计时时钟,含起始和终止的所有时间。调用cpu的计时函数 |
process_time | time.process_time() | 进程计时时钟,不含进程sleep()时间。专门用于对进程计时 |
time | time.time() | 系统计时时钟,精度不高 |
小结
1、将时间戳(time stamp)转换为struct_time对象:
1)、转换为UTC时间的struct_time对象:time.gmtime(time stamp)
2)、转换为当地时间的struct_time对象:time.localtime(time stamp)
2、将struct_time对象转换为浮点数:time.mktime(timeObj)
3、几个函数的概括:
time.time() —— 产生时间戳
time.mktime() —— 将struct_time对象转化为时间戳
time.gmtime() —— 产生UTC的struct_time对象
time.localtime() —— 产生当前地区的struct_time对象
time.asctime() —— 产生当前地区的字符串形式时间,可接收struct_time对象作为参数
time.ctime() —— 产生当前地区的字符串形式时间,可接收时间戳(time stamp)作为参数
random库
用途 | 函数 |
---|---|
基本随机函数 | seed()、random()、getstate()、setstate() |
扩展随机函数 | randint()、getrandbits()、randrange()、choice()、shuffle()、sample() |
分布随机函数 | uniform()、traingular()、betavariate()、expovariate()、gammavariate()、gauss()、lognormvariate()、normalvariate()、vonmisesvariate()、paretovariate()、weibullvariate() |
random库产生随机数的原理:使用梅森旋转算法通过随机数种子产生随机数
random.seed()
作用:初始化随机数种子,默认是系统的当前时间
用法:random.seed(10)
random.randint(a, b)
作用:生成随机整数,取值范围 [a, b]
用法:random.randint(1, 100),生成随机数范围 [1, 100]
random.randrange(a, b [, step])
作用:生成随机整数,取值范围 [a, b),数值步长为k。随机步长的含义,在[a, b)的范围内,每隔k个值取一个数字作为随机成员。
用法:random.randrange(10, 100, 20),生成随机数可能的取值[10, 20, 30, 40, …, 90]
例如:
random.choice(seq)
作用:从序列seq中随机选择一个元素
用法:random.choice([1, 2, 3, 4, 5])
例如:
random.shuffle(seq)
作用:将序列seq随机重新排列,更改原序列
用法:random.shuffle([1, 2, 3, 4, 5])
例如:
random.sample(seq, k)
作用:从序列seq中随机选个k个元素,组成新序列,原序列不变
例如:
分布函数中的取值
random.uniform(a, b)
作用:等概率的生成[a, b]之间的随机小数
random.betavariate(alpha, beta)
作用:采用beta分布,生成[0, 1]之间的随机小数
random.traingular(low , high, mode)
作用:采用三角分布(辛普森分布),生成[low, high]之间的随机小数
random.expovariate(lambda)
作用:采用指数分布,生成[0, ∞]之间的随机整数
random.gammavariate(alpha, beta)
作用:采用gamma分布,生成随机小数
random.gauss(mu, sigma)
作用:采用高斯分布(正态分布),生成随机小数
random.lognormvariate(mu, sigma)
作用:采用对数正态分布,生成随机小数
random.normalvariate(mu, sigma)
作用:采用正态分布,生成随机小数
random.vonmisesvariate(mu, kappa)
作用:采用冯米塞斯分布,生成随机小数
random.paretovariate(alpha)
作用:采用帕累托分布,生成随机小数
random.weibullvariate(alpha, beta)
作用:采用韦伯分布,生成随机小数