随机数模块random
作者:Shawn
python3.7
手册
https://docs.python.org/3/library/random.html#module-random
部分图片转自wiki
常用函数
random.seed()
random.seed(a=None, version=2)
- 设置随机种子 ,用于同步不同运行环境的随机数。
random.getstate()
random.getstate()
- 获得当前状态,用于恢复状态
random.setstate()
random.setstate(state)
- 恢复状态
>>> import random
>>> s=random.getstate()
>>> random.random()
0.15441857485858956
>>> random.random()
0.6330314601528841
>>> random.setstate(s)
>>> random.random()
0.15441857485858956
>>> random.random()
0.6330314601528841
>>> random.random()
0.04725013105129261
random.getrandbits()
random.getrandbits(k)
- 生成占内存k位以内的随机整数,硬核秃头专属。
>>> import random
>>> random.getrandbits(10)
674
>>> random.getrandbits(10)
10
>>> random.getrandbits(10)
745
>>> random.getrandbits(10)
560
>>> random.getrandbits(10)
162
random.random()
random.random()
- 随机产生一个[0,1.)数字。
>>> random()
0.37444887175646646
random.uniform()
random.uniform(a, b)
- 产生一个a、b区间的随机数。
>>> uniform(2.5, 10.0)
3.1800146073117523
random.randrange()
random.randrange(start, stop[, step])
- 整数随机。
- 功能等同于
choice(range(start, stop, step))
。
>>> randrange(10) # 0到9随机
7
>>> randrange(0, 101, 2) # 0到100随机偶数
26
random.randint()
random.randint(a, b)
- 返回一个[a,b]的随机整数。
- 功能等同于
randrange(a, b+1)
。
random.choice()
random.choice(seq)
- 返回对象中的一个随机元素。
random.choices()
random.choices(population, weights=None, *, cum_weights=None, k=1)
- 随机选择,是
random.choice(seq)
的升级版本。
>>> choice(['win', 'lose', 'draw'])
'draw'
random.sample()
random.sample(population, k)
- 随机取样
>>> sample([10, 20, 30, 40, 50], k=4)
[40, 10, 50, 30]
- choices与sample的区别:
- choices在抽取随机元素时是包含重复元素的,即:一个元素可能会被抽取多次。
- 反之,在sample中,抽取的元素是不重复的。
- 所以,在抽取元素大于样本集总数时,choices会继续而sample会报错:
>>> import random
>>> random.choices([1,2,3,4],k=4)
[4, 3, 4, 4]
>>> random.sample([1,2,3,4],k=4)
[3, 1, 2, 4]
>>> random.choices([1,2,3,4],k=5)
[3, 3,