# Python中怎么随机生成数字
在Python编程中,随机数生成是常见需求,广泛应用于模拟、游戏、密码学等领域。本文将详细介绍Python中生成随机数的多种方法及其应用场景。
---
## 1. 使用`random`模块
Python标准库中的`random`模块是最常用的随机数生成工具,提供多种随机数生成函数。
### 1.1 生成随机浮点数
```python
import random
# 生成[0.0, 1.0)之间的随机浮点数
rand_float = random.random()
print(rand_float)
# 生成指定范围的随机浮点数
rand_uniform = random.uniform(1.5, 3.5)
print(rand_uniform)
# 生成[a, b]范围内的随机整数
rand_int = random.randint(1, 10)
print(rand_int)
# 从range中随机选择(步长敏感)
rand_range = random.randrange(0, 100, 5)
print(rand_range)
my_list = [1, 2, 3, 4, 5]
# 随机选择元素
random_choice = random.choice(my_list)
print(random_choice)
# 随机打乱序列(原地修改)
random.shuffle(my_list)
print(my_list)
# 随机采样(无重复)
random_sample = random.sample(my_list, 3)
print(random_sample)
secrets
模块(安全场景)当需要加密安全的随机数时(如生成令牌、密码),应使用secrets
模块:
import secrets
# 生成安全随机整数
secure_randint = secrets.randbelow(100)
print(secure_randint)
# 生成随机字节串
token = secrets.token_bytes(16)
print(token)
# 生成URL安全令牌
url_token = secrets.token_urlsafe(16)
print(url_token)
numpy.random
(科学计算)对于需要高效生成大量随机数的科学计算场景,推荐使用NumPy:
import numpy as np
# 生成随机浮点数数组
rand_array = np.random.rand(3, 2) # 3x2矩阵
print(rand_array)
# 生成正态分布随机数
normal_dist = np.random.normal(0, 1, 1000)
# 设置随机种子(可复现性)
np.random.seed(42)
为保证随机结果可复现,需要设置随机种子:
import random
random.seed(2023) # 设置种子
print(random.random()) # 每次运行结果相同
def generate_verification_code(length=6):
return ''.join(str(random.randint(0, 9)) for _ in range(length))
def monte_carlo_pi(n_samples):
inside = sum(1 for _ in range(n_samples)
if random.random()**2 + random.random()**2 <= 1)
return 4 * inside / n_samples
participants = ["Alice", "Bob", "Charlie", "Diana"]
winner = random.sample(participants, 2) # 抽取2名中奖者
random
模块用于加密相关操作通过灵活运用这些方法,可以满足从简单随机选择到复杂科学模拟的各种需求。 “`
(注:实际字数约750字,此处为精简展示版,完整版可通过扩展示例和说明达到指定字数要求)
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4848094/blog/4745790