python标准库学习5-random

来源:互联网 发布:网络非语言表达 编辑:程序博客网 时间:2024/05/03 19:51
random模块用来生成随机数,只是这些随机也只是伪随机,如果需要真的随机性应该使用os模块中的urandom,但是就一般的使用random已经足够,具体的函数如下:
1.random.seed([x]):伪随机数生成模块。如果不提供 seed,默认使用系统时间。使用相同的 seed,可以获得完全相同的随机数序列,常用于算法改进测试。
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.seed(1)
>>> random.random()
0.13436424411240122
2.random.getstat():返回获取当前内部生成器的状态
3.random.setstat():用来还原生成器状态到getstat的状态
4.random.jumpahead(n):修改状态
5.random.getrandbits(k):返回一个K位的python长整型
>>> random.getrandbits(10)
757L
>>> random.getrandbits(10)
763L
6.random.randrange([start],stop,[step]):返回一个range(start,stop,step)中的随机数,例如返回0,9中的随机偶数:
>>> random.randrange(0,10,2)
0
>>> random.randrange(0,10,2)
6
7.random.randint(a,b):返回一个随机整数N的值在a,b之间
>>> random.randint(1,5)
2
>>> random.randint(1,5)
3
8.random.choice(seq):返回序列(列表元组字符串)中的一个随机元素,如果序列为空则会返回一个异常IndexError
>>> a=['a','b','c','d']
>>> random.choice(a)
'c'
>>> a=[]
>>> random.choice(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Program Files\python27\lib\random.py", line 275, in choice
return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty
IndexError: list index out of range
9.random.shuffle(x[,random]):原地指定序列seq,将序列x中的元素进行随机位移,这个只支持列表,因为只有列表的元素是可变的
>>> a=[1,2,3,4,5,6]
>>> random.shuffle(a)
>>> a
[3, 4, 6, 2, 5, 1]
10.random.sample(seq,n):从序列seq中选择N个随机且独立的元素
>>> a=[1,1,1,2,3]
>>> random.sample(a,3)
[1, 2, 1]
>>> random.sample(a,3)
[3, 1, 2]
11.random.random():返回一个0.0到1.0中间的随机的浮点数
>>> random.random()
0.1879052007979286
>>> random.random()
0.8952514570878849
12.random.uniform(a,b):返回ab直接的随机浮点数
>>> random.uniform(8,5)
7.181764370668931
>>> random.uniform(1,5)
2.5789568708042805






























0 0