Python之random模块

1. python的random模块介绍

Python的random模块是用于生成随机数的标准库,支持生成伪随机数、shuffle操作和随机选择操作等。下面是random模块的方法分类介绍

2. 生成随机数

以下是random模块提供的一些生成随机数的方法:

  • random():返回一个[0.0, 1.0)之间的随机实数
  • uniform(a, b):返回一个[a, b]之间的随机实数
  • randint(a, b):返回一个[a, b]之间的随机整数
  • randrange([start, ]stop[, step]):返回一个[start, stop)之间按step间隔的随机整数
  • getrandbits(k):返回一个k位长的随机整数
import random

print(random.random())          # 0.5841304581151415
print(random.uniform(1, 10))    # 9.747189658852494
print(random.randint(1, 10))    # 6
print(random.randrange(1, 10, 2)) # 5
print(random.getrandbits(16))   # 21784

3. 随机序列操作

以下是random模块提供的一些随机序列操作方法:

  • shuffle(x[, random]):将序列x中的元素随机打乱,返回None。
  • sample(population, k[, counts, random]):从序列population中随机选择k个元素组成一个新序列返回。
  • choices(population, weights=None, *, cum_weights=None, k=1):从序列population中随机选择k个元素组成一个新序列返回,根据权重选择元素。
import random

x = [1, 2, 3, 4, 5]
print(x)        # [1, 2, 3, 4, 5]

random.shuffle(x)
print(x)        # [2, 1, 5, 3, 4]

y = [1, 2, 3, 4, 5]
print(random.sample(y, 3))  # [3, 2, 5]

z = [1, 2, 3, 4, 5]
print(random.choices(z, weights=[1, 1, 1, 1, 6], k=3))  # [5, 5, 5]

4.置随机数种子

以下是random模块提供的用于设置随机数种子的方法:

  • seed([a]):初始化随机数生成器的种子,如果没有参数,则使用当前系统时间

5.其他方法

除了前面提到的方法外,random模块还提供了以下方法:

  • choice(seq):从序列seq中随机选择一个元素返回。
  • gauss(mu, sigma):返回均值为mu,标准差为sigma的高斯分布的随机数。
  • expovariate(lambd):返回参数lambda表示的指数分布的随机数。
  • betavariate(alpha, beta):返回参数alpha和beta表示的beta分布的随机数。
import random

seq = [1, 2, 3, 4, 5]
print(random.choice(seq))      # 2

print(random.gauss(0, 1))      # 0.1018121821115013

print(random.expovariate(0.5)) # 1.2246799668192103
print(random.betavariate(1, 1)) # 0.26140781640430717
posted @ 2023-03-19 22:58  我不知道取什么名字好  阅读(29)  评论(0编辑  收藏  举报