python 随机数 random 库的使用总结

目录

1、random 库中的常用随机数生成函数

2、一些用法举例

3、随机数种子 seed(a) 的理解与使用


random 库的主要目的就是生成随机数。

1、random 库中的常用随机数生成函数

from random import *

1、seed(a=None)   # 初始化随机数种子,默认值为当前系统的时间
2、random()       # 生成一个 [0, 1.0) 之间的随机小数
3、randint(a, b)  # 生成一个 [a, b] 之间的随机整数
4、getrandbits(k) # 生成一个 k 比特长度的随机整数
5、randrange(start, stop[,step])  # 生成一个 [start, stop) 之间以 step 递增的随机整数
6、uniform(a, b)  # 生成一个 [a, b] 之间的随机小数
7、choice(seq)    # 从序列类型(字符串、元组、列表等)中随机返回一个元素
8、shuffle(seq)   # 将序列类型中的排列元素原地随机打乱,原位操作,无返回值
9、sample(pop, k) # 从序列或集合类型中中随机选取 k 个元素,以列表类型返回

2、一些用法举例

from random  import *

""" random() """
a = random()
print(a)  # 输出 0.6128015245503746 一个 [0, 1.0) 之间的随机小数
""" uniform(a, b) """
b = uniform(2.0, 8.0)
print(b)  # 输出 2.2387433193461854 一个 [2.0, 8.0] 之间的随机小数
""" randrange(start, stop[,step]) """
c = randrange(10, 20, 2)  # step 参数默认为 1
print(c) # 输出 18 ,相当于从[10, 12, 13, 14, 15, 16, 17, 18, 19, 20] 中随机挑选一个返回
""" shuffle(seq) """
nums = [1, 2, 3, 4, 5, 6]
shuffle(nums)  # 注意是原位操作,无返回值
print(nums)  # 输出 [5, 3, 4, 2, 1, 6]
""" sample(pop, k) """
pop1 = (1, 2, 3, 4, 5)
pop2 = "abcdefg"
d1 = sample(pop1, 2)  # 从元组中随机抽取
print(d1) # 输出 [3, 1]
d2 = sample(pop2, 2)  # 从字符串中随机抽取
print(d2)  # 输出 ['g', 'a']

3、随机数种子 seed(a) 的理解与使用

计算机所有编程语言产生的随机数本质上是伪随机数,是根据特定的规则产生的,虽然看起来是随机的,但本质上是确定的,只是随着随机数种子的不同会产生不同的结果。

如果在程序运行时指定随机数种子,那么随机函数每次重新运行后产生的结果是一样的,举个例子:

from random  import *

seed(10)
for i in range(3):
    print(random())

上面这段代码给了个随机种子 10,然后输出三次,运行两次代码,结果如下:

可以发现每次运行的结果是一样的。随机数种子的值可以是:None, int, float, str, bytes,  bytearray 类型

前面说过,如果不设定seed,会默认在运行时使用系统时间作为随机数种子,因此此时每次运行程序得到的结果都是不一样的。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球被支点撬走啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值