Python包含以下常用随机数函数:
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
choice() 方法返回一个列表,元组或字符串的随机项。
语法:
import random random.choice( seq )
注意:choice()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数:seq可以是一个列表,元组或字符串
randrange() 方法返回指定递增基数集合中的一个随机数,基数默认值为1。
语法:
import random random.randrange ([start,] stop [,step])
注意:randrange()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数:
start -- 指定范围内的开始值,包含在范围内。
stop -- 指定范围内的结束值,不包含在范围内。
step -- 指定递增基数。
由运行结果可知,当参数为字符串时,会出现错误,提示开始值应为int型数字
random() 方法返回随机生成的一个实数,它在[0,1)范围内。
语法:
import random random.random()
注意:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数:无参数
返回值:返回随机生成的一个实数,它在[0,1)范围内。
seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。。、
语法:
import random random.seed ( [x] )
我们调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 设定好种子之后,其中的 x 可以是任意数字,如10,这个时候,先调用它的情况下,使用 random() 生成的随机数将会是同一个。
注意:seed()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数
x -- 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
返回值:无返回值
shuffle() 方法将序列的所有元素随机排序。
语法:
import random
random.shuffle (lst )
注意:shuffle() 是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数:lst列表
返回值:返回None
import random
list = [20, 16, 10, 5];
random.shuffle(list)
print("随机排序列表 : ", list)
random.shuffle(list)
print("随机数排序列表:",list)
list1=[15,'hello',30,40,'world']; #数字与字符串混合的列表
random.shuffle(list1)
print("随机排序列表:",list1)
list2=['你好','世界','hello','world']; #字符串列表
random.shuffle(list2)
print("随机排序列表:",list2)
运行结果:
uniform() 方法将随机生成下一个实数,它在 [x,y] 范围内。
语法:
import random random.uniform(x, y)
注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
参数
x -- 随机数的最小值,包含该值。
y -- 随机数的最大值,包含该值。
返回值
返回一个浮点数 N,取值范围为如果 x<y 则 x <= N <= y,如果 y<x 则y <= N <= x。
import random
print(random.uniform(5,10))
print(random.uniform(20,10))
运行结果: