python random详解

2023-12-13 14:19:01

文章目录

random

Python的random模块是用于生成随机数的。它可以生成各种类型的随机数,包括随机浮点数、随机整数、随机选择序列等。

简单示例

1. 生成随机浮点数:

import random
x = random.random() # 生成0到1之间的随机浮点数
print(x)

2. 生成指定范围内的随机整数:

import random
x = random.randint(1, 100) # 生成1到100之间的随机整数,包含1和100
print(x)

3. 从序列中随机选择元素:

import random
my_list = [1, 2, 3, 4, 5]
x = random.choice(my_list) # 从my_list中随机选择一个元素
print(x)

4. 打乱序列顺序:

import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list) # 将my_list的顺序打乱
print(my_list)

常用的方法及其解释和例子:

1. random():该方法返回一个0到1之间的随机浮点数。例如:

import random
x = random.random()
print(x)  # 输出:0.23214654274405987

2. randint(a, b):该方法返回一个指定范围内的随机整数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:

import random
x = random.randint(1, 10)  # 输出:3

3. uniform(a, b):该方法返回一个指定范围内的随机浮点数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:

import random
x = random.uniform(1, 3)  # 输出:1.2345678912345679

4. choice(sequence):该方法从给定的序列中随机选择一个元素。例如:

import random
my_list = [1, 2, 3, 4, 5]
x = random.choice(my_list)  # 输出:3

5. sample(population, k):该方法从给定序列中随机选择指定数量的元素,并返回这些元素组成的列表。例如:

import random
my_list = [1, 2, 3, 4, 5]
x = random.sample(my_list, 2)  # 输出:[3, 4]

6. shuffle(sequence):该方法将给定序列的元素打乱顺序。例如:

import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)  # 将my_list的顺序打乱:[3, 2, 5, 1, 4]
print(my_list)  # 输出:[3, 2, 5, 1, 4]

7. random.randrange(start, stop[, step]):该方法返回一个在指定范围内的随机整数。参数start是下限,参数stop是上限,参数step是步长。生成的随机数n满足start <= n < stop。例如:

import random
x = random.randrange(1, 10)  # 输出:3

8. random.randfloat(a, b):该方法返回一个指定范围内的随机浮点数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:

import random
x = random.randfloat(1, 3)  # 输出:1.2345678912345679

9. random.getrandbits(k):该方法返回k个随机比特位所表示的整数。生成的随机数n满足0 <= n < 2^k。例如:

import random
x = random.getrandbits(10)  # 输出:37

10. random.betavariate(alpha, beta):该方法返回一个根据Beta分布生成的随机数。生成的随机数n满足0 <= n <= 1。例如:

import random
x = random.betavariate(2, 5)  # 输出:0.8380302685376593

12. random.expovariate(lambda):该方法返回一个根据指数分布生成的随机数。lambda是参数,表示单位时间内随机数的平均出现率。例如:

import random
x = random.expovariate(0.5)  # 输出:0.6998649274150243

13. random.normalvariate(mu, sigma):该方法返回一个根据正态分布生成的随机数。mu是平均值,sigma是标准差。生成的随机数n满足mu - 3sigma <= n <= mu + 3sigma。例如:

import random
x = random.normalvariate(0, 1)  # 输出:-0.2924076542778294

14. random.weibullvariate(alpha, beta):该方法返回一个根据Weibull分布生成的随机数。alpha是分布的形状参数,beta是分布的尺度参数。生成的随机数n满足0 <= n <= 1。例如:

import random
x = random.weibullvariate(2, 5)  # 输出:0.27486544133783987

15. random.triangular(low, high, mode):该方法返回一个指定范围内的随机数,并根据给定的mode(中点)进行对称性处理。生成的随机数n满足low <= n <= high。例如:

import random
x = random.triangular(1, 10, 5)  # 输出:5.286543209876543

16. random.gauss(mu, sigma):该方法返回一个根据高斯分布生成的随机数。mu是平均值,sigma是标准差。生成的随机数n满足mu - 3sigma <= n <= mu + 3sigma。例如:

import random
x = random.gauss(0, 1)  # 输出:-1.3954670247686323

17.random.seed:随机种子(Random Seed)。随机种子是用于生成随机数序列的初始值,如果使用相同的随机种子,则生成的随机数序列将相同。可以在程序开始时设置一个随机种子,以确保每次运行程序时生成的随机数序列是相同的。例如:

import random

random.seed(123)  # 设置随机种子
x = random.randint(1, 10)  # 生成随机数
print(x)  # 输出:3

在这个例子中,我们首先使用random.seed()函数将随机种子设置为123,然后使用random.randint()函数生成一个1到10之间的随机整数。由于我们使用了相同的随机种子,因此每次运行程序时生成的随机数序列将是相同的。

例:假设我们正在开发一个彩票游戏,需要生成一组随机数字作为中奖号码。我们可以使用random模块的randint()函数来生成指定范围内的随机整数。

import random

# 生成1到33之间的6个不重复的随机整数
winning_numbers = []
while len(winning_numbers) < 6:
    number = random.randint(1, 33)
    if number not in winning_numbers:
        winning_numbers.append(number)

# 输出中奖号码
print("中奖号码是:", winning_numbers)

首先生成一个空的winning_numbers列表,然后在一个循环中使用randint()函数生成1到33之间的随机整数,检查它是否已经存在于winning_numbers列表中,如果不存在则将其添加到列表中。循环直到生成的随机数个数达到6个为止。最后,输出中奖号码。

安装hydra

pip install hydra-core --upgrade

文章来源:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/134878170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。