随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
choice(seq) 函数
choice() 方法返回传入参数中的随机元素,传入参数可以是一个字符串、列表或者元组。
注意:choice()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
res1 = random.choice("ABCDEFG")
res2 = random.choice([1,2,'3',4,5,'6'])
res3 = random.choice(range(10))
res4 = random.choice((1,2,3,4,5))
randrange([start,] stop [,step]) 函数
randrange() 方法返回指定递增基数集合中的一个随机数,第一个范围开始值,默认值为1,第二个参数为范围结束值,必传。第三个参数为递增基数,默认值为1 。
注意:randrange()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
res1 = random.randrange(1,10,1) # 将从[1,2,3,4,5,6,7,8,9] 中随机出一个数字
res2 = random.randrange(1,10,2) # 将从[1,3,5,7,9] 中随机出一个数字
res3 = random.randrange(1,10,3) # 将从[1,4,7] 中随机出一个数字
res4 = random.randrange(10) # 将从[1,2,3,4,5,6,7,8,9] 中随机出一个数字
random() 函数
random() 方法返回随机生成的一个实数,它在[0,1)范围内。
注意:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
res = random.random() # 随机出的数字是个大于等于0 小于1的数字 ,例如0.5522758033506169
seed() 函数
seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。 本函数没有返回值,只为随机数函数设置种子。
注意:seed()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
random.seed(10)
res1 = random.random() # 0.5714025946899135
random.seed(10)
res2 = random.random() # 0.5714025946899135
每次调用random()之前,对random设置一次种子,如果设置的种子相同,则获取的随机数相同。
还可以使用字符串设置种子:
import random
random.seed("hello",0)
res1 = random.random() # 0.922525368007621
random.seed("hello",1)
res2 = random.random() # 0.8180391270568783
random.seed("hello",2)
res3 = random.random() # 0.3537754404730722
random.seed("hello",3)
res4 = random.random() # 0.922525368007621
random.seed("hello",4)
res5 = random.random() # 0.922525368007621
random.seed("hello",5)
res6 = random.random() # 0.922525368007621
# 大家自行体会第一个字符串参数形同的情况下,第二个参数设为 0 , 3 ,4, 5 结果会相同?
shuffle() 函数
shuffle() 方法将序列的所有元素随机排序,它接收的参数为列表,无返回值,他会随机改变列表(传入的参数)的元素顺序。
注意:shuffle() 是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
lst = [1,2,3,5]
random.shuffle(lst)
print(lst)
uniform() 函数
uniform() 方法将随机生成下一个实数,它在 [x,y] 范围内。
注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
res1 = random.uniform(1,3)
res2 = random.uniform(3,1)
# 随机出的数字都是 >=1 且 <=3 的