一文掌握python随机数random模块

目录

一、常用函数

1、 random.random()

2、random.uniform(a, b)

3、random.randint(a, b)

4、random.randrange(start, stop[, step])

5、random.choice(sequence)

6、random.shuffle(x[, random])

7、random.sample(population, k)

8、random.choices(population, weights=None, *, cum_weights=None, k=1)

1)基本用法

2)带权重的选择

3)使用累积权重

4)抽取多个元素

5)不允许重复抽取

6)无权重时的简化用法

7)结合条件逻辑

二、实际应用示例

1、生成随机验证码:

2、模拟掷骰子:

3、自定义一个随机数函数,许用户选择生成字符的类型(大写字母、小写字母、数字或它们的混合)以及生成字符串的长度


Python的random模块是一个强大的工具,用于生成伪随机数,广泛应用于数据模拟、游戏开发、密码学(尽管对于安全敏感的应用需要使用更安全的随机数生成器,如secrets模块)等领域。

一、常用函数

1、 random.random()

生成一个介于0到1之间(不含1)的随机浮点数(16位小数)。

import random
random_number = random.random()
print(random_number)

2、random.uniform(a, b)

生成一个指定范围内的随机浮点数,区间为[a, b)。(16位小数)

import random
random_float = random.uniform(1, 10)
print(random_float)

3、random.randint(a, b)

生成一个指定范围内的随机整数,包括两端点。

import random
random_integer = random.randint(1, 100)
print(random_integer)

4、random.randrange(start, stop[, step])

从指定范围内,按指定步长生成一个随机整数,不包括结束值。

import random
random_choice = random.randrange(1, 10, 2)  # 随机生成1到9之间的奇数
print(random_choice)

5、random.choice(sequence)

从序列(列表、元组、字符串等)中随机选择一个元素。

import random
my_list = [1, 'apple', 3.14, True]
random_element = random.choice(my_list)
print(random_element)

6、random.shuffle(x[, random])

将一个列表中的元素打乱。

import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)

7、random.sample(population, k)

从总体序列中选择k个随机且不重复的样本。

import random
sample = random.sample(range(1, 20), 5)
print(sample)

8、random.choices(population, weights=None, *, cum_weights=None, k=1)

从总体序列或集合中随机选取指定数量的唯一或重复项,可选配权重。

weights 和 cum_weights 不能同时传,只能选择一个来传。

  • population: 这是一个必需的参数,表示你想要从中抽取元素的列表、元组、字符串或其他可迭代对象。

  • weights(可选): 一个列表或元组,表示每个元素被抽中的相对概率。这个列表的长度必须与population相同。如果未提供或为None,则每个元素被选中的概率相等。

例如weights = [10, 5, 2, 1],首先,计算权重的总和:total = sum(weights) = 10 + 5 + 2 + 1 = 18
然后,每个元素 i 的概率 p_i 是它的权重 w_i 除以总和:p_i = w_i / total
所以,各个元素的概率分别是:
第一个元素的概率:p1 = 10 / 18 ≈ 0.556
第二个元素的概率:p2 = 5 / 18 ≈ 0.278
第三个元素的概率:p3 = 2 / 18 ≈ 0.111
第四个元素的概率:p4 = 1 / 18 ≈ 0.056

  • cum_

  • 28
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值