基本随机数函数
seed()
用于设定随机数种子,默认是以系统时间为种子
#默认以系统时间为种子
random.seed()
for i in range(5):
print(random.random())
第一次运行结果
0.26734155407208104
0.42545661328469664
0.9117954845687343
0.24536621387699853
0.4507611579106827
第二次运行结果
0.2224361976810766
0.5394607691574935
0.6576528924236562
0.37023121607844
0.47283418395156696
每次运行结果产生的随机数都不同,说明默认情况下以系统时间为种子产生的随机数是难以复现的
import random
#设定随机数种子为10
random.seed(10)
#产生随机数
for i in range(5):
print(random.random())
运行结果
0.5714025946899135
0.4288890546751146
0.5780913011344704
0.20609823213950174
0.81332125135732
无论运行多少次,都是上述结果,说明人为设定的种子产生的随机数是可以复现的
扩展随机数函数
randint(a,b)
生成一个[a,b]之间的整数
import random
r=random.randint(1,10)
print(r)
randrange(m,n[,k])
生成一个[m,n]之间以k为步长的随机整数
import random
#生成[10,100]之间步长为10的整数
r=random.randrange(10,100,10)
print(r)
getrandbits(k)
生成一个k比特长的随机整数
import random
r=random.getrandbits(16)
print(r)
运行结果
63811
uniform(a,b)
生成一个[a,b]之间的随机小数
import random
r=random.uniform(10,100)
print(r)
运行结果
40.33708598015649
choice(seq)
从序列seq中随机选择一个元素
import random
r=random.choice([1,2,3,4,5,6,7,8,9])
print(r)
运行结果
5
shuffle(seq)
将序列seq中元素随机排列,返回打乱后的序列
import random
s=[1,2,3,4,5,6,7,8,9]
random.shuffle(s)
print(s)
运行结果
[8, 3, 5, 7, 9, 1, 6, 2, 4]