Python Python中的随机数函数,你只知道random()吗?

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。


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 的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值