Python中的随机数生成主要通过random
模块来实现。该模块提供了各种随机数生成函数,包括整数、浮点数、随机抽样等。
random
模块提供了简洁的API,易于上手。randint(a, b)
生成[a, b]之间的整数。uniform(a, b)
生成[a, b]之间的浮点数。choice(seq)
从序列中随机选择一个元素。shuffle(seq)
将序列随机打乱。import random
# 生成一个[1, 10]之间的整数
random_int = random.randint(1, 10)
print(f"随机整数: {random_int}")
# 生成一个[0.0, 1.0)之间的浮点数
random_float = random.uniform(0.0, 1.0)
print(f"随机浮点数: {random_float}")
# 从列表中随机选择一个元素
my_list = [1, 2, 3, 4, 5]
random_choice = random.choice(my_list)
print(f"随机选择: {random_choice}")
# 将列表随机打乱
random.shuffle(my_list)
print(f"随机打乱后的列表: {my_list}")
原因:Python的random
模块使用伪随机数生成器(PRNG),其随机性依赖于初始种子(seed)。如果每次运行程序时种子相同,生成的随机数序列也会相同。
解决方法:
import random
# 设置随机种子
random.seed()
# 或者使用当前时间作为种子
random.seed(None)
原因:对于某些安全敏感的应用,如密码学,Python的random
模块提供的随机数可能不够安全。
解决方法:
使用secrets
模块,该模块提供了生成安全随机数的函数。
import secrets
# 生成一个安全的随机整数
secure_random_int = secrets.randbelow(10)
print(f"安全随机整数: {secure_random_int}")
领取专属 10元无门槛券
手把手带您无忧上云