1、time库:处理时间的标准库

1)获取现在的时间

1
2
3
4
5
6
7
8
import time # 要使用库就必须要引入

# 获取本地时间,返回的时间的结构体,不是很直观
t_local = time.localtime()
# 获取UTC世界统一时间,返回的时间的结构体,不是很直观
t_UTC = time.gmtime()
# 这个方法返回本地时间的字符串,看起来就比较直观
time.ctime()

2)时间戳与计时器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. time.time()	返回自纪元以来的秒数,记录sleep
# 2. time.perf_counter() 随机选取一个时间点,记录现在时间到该时间点的间隔秒数,记录sleep
# 3. time.process_time() 随机选取一个时间点,记录现在时间到该时间点的间隔秒数,不记录sleep
# 4. perf_counter()的精度比time()要高一点
# 5. 将结束时间减去起始时间就是一个计时器了
t_1_start = time.time()
t_2_start = time.perf_counter()
t_3_start = time.process_time()
print(t_1_start)
print(t_2_start)
print(t_3_start)

res = 0
for i in range(10000000):
re += 1
time.sleep(5)
t_1_end = time.time()
t_2_end = time.perf_counter()
t_3_end = time.process_time()
print("time方法:{:.3f}秒".format(t_1_end-t_1_start))
print("perf_counter方法:{:.3f}秒".format(t_2_end-t_2_start))
print("process_time方法:{:.3f}秒".format(t_3_end-t_3_start))

3)格式化输出:time.strftime()

1
2
3
lctime = time.localtime()
time.strftime("%Y-%M-%d %A %H:%M:%S", lctime)
# 输出结果:'2019-08-29 Thursday 16:54:45'

4)睡觉函数:time.sleep(暂停运行的秒数)

2、random库:提供伪随机数

1)随机种子:seed(a = None)

1
2
3
4
5
6
from random import *
print(random()) # 如果不设置种子则以系统时间为默认值
seed(10) # 相同种子产生的随机数相同
print(random())
seed(10)
print(random())

2)产生随机整数

1
2
3
4
5
6
7
from random import *
# randint(a,b)——产生[a,b]之间的随机整数
numbers1 = [randint(1,10) for i in range(10)]
# randrange(a)——产生[0,a)之间的随机整数
numbers2 = [randrange(10) for i in range(10)]
# randrange(a,b,step)——产生[a,b)之间以step为步长的随机整数
numbers2 = [randrange(0,10,2) for i in range(10)]

3)产生随机浮点数

1
2
3
4
5
from random import *
# random()——产生[0.0,1.0)之间的随机浮点数
numbers4 = [random() for i in range(10)]
# uniform(a,b)——产生[a,b]之间的随机浮点数
numbers2 = [uniform(2.1,3.5) for i in range(10)]

4)序列用函数

1
2
3
4
5
6
7
8
9
ls = ['win','lose','draw']
# choice(seq)——从序列类型中随机返回一个元素
choice(ls)
# choices(seq, weights=None, k)——对序列进行k次重复采样,可设置权重
choices(ls,[4,4,2],k = 10)
# shuffle(seq)——将序列中元素随机排序
shuffle(ls)
# sample(seq,k)——从序列中随机选取k个元素
sample(ls,2)

5)概率分布——以高斯分布为例

1
2
numbers = gauss(0,1)  # 两个参数分别为0和1的高斯分布
res = [gauss(0,1) for i in range(100)] # 一次性生成多个