Python的random
模块是标准库的核心组件,用于生成随机数和执行随机选择操作。以下是核心用法示例,涵盖基础功能及进阶应用:
一、基础随机数生成
-
生成随机整数
random.randint(a, b)
:返回[a, b]
范围内的随机整数。import random print(random.randint(1, 100)) # 生成1-100之间的随机整数
random.randrange(start, stop, step)
:按指定步长生成随机整数。 ```python print(random.randrange(10, 100, 2)) # 生成10-98之间的偶数
-
生成随机浮点数
random.random()
:返回[0.0, 1.0)
范围内的随机浮点数。print(random.random()) # 生成0.0-1.0之间的随机数
random.uniform(a, b)
:返回[a, b)
范围内的随机浮点数。 ```python print(random.uniform(1, 5)) # 生成1.0-5.0之间的随机数
二、随机选择操作
- 从序列中随机选择元素
-
random.choice(sequence)
:从非空序列中随机选择一个元素。 ```python fruits = ["苹果", "香蕉", "橙子"] print(random.choice(fruits)) # 随机选择一种水果 -
random.sample(population, k)
:从序列中随机选择k
个不重复元素。print(random.sample(fruits, 2)) # 随机选择两种水果
-
三、进阶应用
-
带权重的随机选择
random.choices(population, weights)
:根据权重列表随机选择元素,权重总和需为1。 ```python favorites = ["苹果", "香蕉", "橙子"] weights = [0.3, 0.4, 0.3] print(random.choices(favorites, weights)) # "香蕉"被选中的概率是0.4
-
生成随机事件(示例:星座运势)
- 结合星座列表和运势模板,按概率生成每日运势。 ```python
constellations = ["白羊座", "金牛座", ...]
fortune_templates = {
"career": ["升职加薪", "项目受阻", ...],
"love": ["邂逅良缘", "面临抉择", ...]
}
def generate_daily_fortune():
star = random.choice(constellations)
fortune = {
"career": random.choices(fortune_templates["career"], weights=[3, 1, 4, 2], k=1),
"love": random.choices(fortune_templates["love"], weights=[2, 3, 1, 4], k=1)
}
return f"{star}今日运势:{fortune}"
print(generate_daily_fortune())
- 结合星座列表和运势模板,按概率生成每日运势。 ```python
constellations = ["白羊座", "金牛座", ...]
fortune_templates = {
"career": ["升职加薪", "项目受阻", ...],
"love": ["邂逅良缘", "面临抉择", ...]
}
def generate_daily_fortune():
star = random.choice(constellations)
fortune = {
"career": random.choices(fortune_templates["career"], weights=[3, 1, 4, 2], k=1),
"love": random.choices(fortune_templates["love"], weights=[2, 3, 1, 4], k=1)
}
return f"{star}今日运势:{fortune}"
print(generate_daily_fortune())
四、注意事项
- 种子设置 :使用
random.seed(a)
可初始化随机数生成器,a
为种子值(默认为系统时间)。 ```python random.seed(10) # 每次运行生成相同序列 - 模块导入 :需在代码开头使用
import random
或import random as r
,建议统一使用别名r
简化调用。 ```python r = random print(r.randint(1, 10))
以上示例覆盖了random
模块的核心功能及常见应用场景,适合不同需求的开发实践。