random库是使用随机数的Python标准库,从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数。伪随机数即为计算机中通过采用梅森旋转算法生成的(伪)随机序列元素。
python中用于生成伪随机数的函数库是random库,因为是标准库,使用时候只需要import random。random库包含常用的共8个命令,如下表所示:
命令
作用描述
random.seed(number)
初始化给定的随机数种子,默认为当前系统时
间
>>>random.seed(10) #产生种子10对应的序列
random.random()
生成一个[0.0,1.0)之间的随机小数
>>>random.random()
0.5714025946899135
random.randint(a,b)
生成一个[a,b]之间的整数,可以包含a与b
>>>random.randint(10,100)
random.randrange(m,n[,k])
生成一个[m,n)之间以k为步长的随机整数
>>>random.randrange(10,100,10)
uniform(a,b)
生成一个[a,b]之间的随机小数
>>>random.uniform(10,100)
16.848041210321334
choice(seq)
序列相关
从序列中随机选择一个元素
>>>random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])
8
shuffle(seq)
序列相关
将序列seq中元素随机排列,返回打乱后的序列
s=[1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(s)
print(s)
打印结果为 [9, 4, 6, 3, 5, 2, 8, 7, 1]
接下来,为了更好的让大家理解random库,结合turtle库,我们做一个小的案例,案例效果如下:
以上演示案例中原理如下:首先设置一下画布的大小和画笔的属性与状态,并让画笔进行走位,走位至画布中央。然后,开始循环使用randint命令生成随机整数,这里选取的随机整数范围为0至100之间。在循环过程中,每次打印在画布上的随机数字颜色也在随机变化,颜色的设置采用三原色RGB模式,其中的R、G、B都是采用randint命令随机生成的。该案例的源代码具体如下:
importturtle
importrandom
importtime
turtle.setup(600,600)
turtle.ht()
turtle.up()
turtle.bk(50)
turtle.right(90)
turtle.fd(50)
turtle.colormode(255)
turtle.down()
fori inrange(100):
num=random.randint(0,100)
R=random.randint(0,255)
G=random.randint(0,255)
B=random.randint(0,255)
color=(R,G,B)
turtle.pencolor(color)
turtle.write(num,font=('Arial',80,'bold'))
time.sleep(1)
turtle.clear()
turtle.mainloop()
(the end)
推荐阅读