python标准库——random,随机函数

import random

print("随机1-50的整数",random.randint(1, 50))

print("随机选取0到100间的偶数",random.randrange(0, 101, 2))

print("随机0-1的浮点数",random.random())

print("随机1-10的浮点数",random.uniform(1, 10))

print("随机选取字符",random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()'))

print("多个字符中选取特定数量的字符列表:",random.sample('zyxwvutsrqponmlkjihgfedcba',5))

#多个字符中选取特定数量的字符组成新字符串:
print(''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5)))

#打乱排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(random.shuffle(items),items)

返回结果:
随机1-50的整数 48
随机选取0到100间的偶数 0
随机0-1的浮点数 0.029123175896787146
随机1-10的浮点数 3.8964541112765376
随机选取字符 z
多个字符中选取特定数量的字符列表: ['f', 'v', 'r', 'q', 'l']
dhyjo
None [4, 7, 1, 0, 2, 5, 3, 6, 8, 9]

### Python 中的随机函数 `random` 的使用方法 Python 提供了一个名为 `random` 的标准库用于生成伪随机数以及执行各种基于随机性的操作。以下是关于该模块的一些核心功能及其用法: #### 基本导入 要使用 `random` 模块的功能,首先需要将其导入到脚本中: ```python import random ``` --- #### 函数分类及说明 1. **生成整数型随机数** - 使用 `randint(a, b)` 可以生成一个范围 `[a, b]` 内的随机整数(包括两端点)。 ```python print(random.randint(1, 10)) # 输出介于1至10之间的任意整数 ``` 这里的实现细节可以参考[^1]。 - 使用 `randrange(start, stop, step)` 则可以从指定范围内按照步长递增的方式选取一个随机数。例如: ```python print(random.randrange(0, 20, 2)) # 从[0, 2, 4,..., 18]序列中选一个随机数 ``` 此处的具体行为已在引用材料中有描述[^2]。 2. **生成浮点型随机数** - 调用 `random()` 方法会返回一个位于区间 `[0.0, 1.0)` 上的浮点数。 ```python print(random.random()) # 返回一个小于1但大于等于0的小数 ``` - 如果希望得到特定区间的浮点数值,则可采用 `uniform(a, b)` 来获得属于 `(a,b)` 或者 `[a,b]` 的均匀分布实数。 ```python print(random.uniform(-5.0, 5.0)) # 得到[-5.0,+5.0]内的某个值 ``` 3. **列表或其他容器对象的选择** - 对于已有的数据结构比如列表来说,“抽取样本”的需求非常普遍。此时可以用到如下几个命令之一: - 单独挑选一项:通过调用 `choice(seq)` 实现; ```python my_list = ['apple', 'banana', 'cherry'] chosen_item = random.choice(my_list) print(chosen_item) # 打印my_list中的某项成员 ``` - 多次抽样允许重复:借助 `choices(population, weights=None, *, cum_weights=None, k=1)` 完成;其中参数k表示取样的次数。 ```python selected_items_with_replacement = random.choices(['red', 'green'], [1, 3], k=5) print(selected_items_with_replacement) # 显示长度为五的结果数组 ``` - 不放回地提取固定数量元素:依靠 `sample(sequence,k)` 达成目标。 ```python unique_selections_without_replacement = random.sample(range(10), 7) print(unique_selections_without_replacement) # 展示七个互异数字组成的列表 ``` 4. **重置种子状态** - 当测试程序或者重现某些计算过程时,可能需要用到固定的初始条件来保证每次运行产生的结果一致。这可以通过设置相同的 seed 值做到这一点。 ```python random.seed(42) # 设定seed之后再连续两次调用相同逻辑将会得出完全一样的输出 first_random_number = random.randint(1, 100) second_random_number = random.randint(1, 100) print(first_random_number,second_random_number) ``` 以上列举了一些常见的应用场景及相关API介绍[^3]。 --- ### 注意事项 尽管这些工具提供了极大的便利性,在实际开发过程中也需要注意以下几点: - 默认情况下所使用的算法并非真正的不可预测源——它们只是看起来像是无规律而已。因此不适合加密用途场景下应用。 - 若要求更高强度的安全保障级别,考虑引入 secrets 替代部分常规做法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郑*杰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值