python中的random模块

来源:互联网 发布:有趣的淘宝收货人名字 编辑:程序博客网 时间:2024/05/16 11:36

random模块通常用于生成随机数,其中几个常用函数比较重要,需要我们牢记。

一、random.random

该函数用于生成0—1之间的随机数。

print random.random()#显示结果为0.934417199201print random.random()#显示结果为0.964504501517
二、random.randint(a, b)

该函数用于生成区间[a,b]中的随机数n,a<=n<=b。a可以等于b,但不能大于b。

print random.randint(1,20)#显示结果为17print random.randint(1,1)#永远显示结果为1print random.randint(20,20)#永远显示结果为20print random.randint(20,1)#报错
三、random.uniform(a,b)

该函数可与第二个函数进行对比,它生成的是区间内的随机浮点数。但对a、b的限制有些许不同。先来看一个例子。

print random.uniform(20,1)#生成2.39971793852
如果a>b,则在(b,a)区间内生成随机数。无论输入的a、b大小如何,它都能调整到一个正确的区间,并从中随机生成一个浮点数。

print random.uniform(1,20)#显示结果为5.12122533938print random.uniform(1,1)#显示结果为1.0print random.uniform(20,20)#显示结果为20.0
四、random.choice(sequence)

该函数可从sequence中获取一个随机元素。需要注意的是sequence并非指特定类型,而是泛指一系列类型,可以是list、tuple,也可以是字符串。

print random.choice([1,2,3,4,5,6,7,8,9,10])#显示结果为6print random.choice((1,2,3,4,5,6))#显示结果为3print random.choice("123456789")#显示结果为6
五、random.randrange([start], stop, [step])

该函数是在区间([start], stop)内(若没有start则默认为0),按[step]递增的集合中(若没有step则默认为1)选取一个随机数。

print random.randrange(3,12,4)#显示结果为7#相当于在[3,7,11]中选取一个随机数

六、random.sample(sequence,k)

该函数可以从指定序列sequence中随机获取长度为k的片段。

print random.sample([1,2,4,6,7,80],3)#显示结果为[1,80,6]#显然是从中随机选取3个元素重新组成片段。
七、random.seed([x])
该函数的返回值为None。它可以让生成的随机数不随机。
random.seed(3)

print random.random()#显示结果为0.237964627092random.seed(3)print random.random()#显示结果为0.237964627092
当在调用其它生成随机数的函数之前,使用相同的seed,可以获得完全相同的随机数。

八、random.shuffle([])

该函数可以将列表中的元素打乱

p = [1,2,3,4]random.shuffle(p)print p#显示结果为[3,1,4,2]