⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Python random 随机数

学习 random 模块 · 难度:入门 · +10XP

Python random 随机数

random 模块是 Python 标准库中用于生成伪随机数的工具模块。它基于梅森旋转算法(Mersenne Twister),可以生成各种分布的随机数,广泛应用于游戏开发、数据抽样、模拟仿真、密码生成等场景。

基本随机函数

import random

# random() - 生成 [0.0, 1.0) 之间的随机浮点数 print(random.random()) # 例如: 0.3744488717564646

# randint(a, b) - 生成 [a, b] 之间的随机整数 print(random.randint(1, 100)) # 例如: 42

# uniform(a, b) - 生成 [a, b] 之间的随机浮点数 print(random.uniform(1.5, 3.5)) # 例如: 2.718

# randrange(start, stop, step) - 从 range 中随机选择 print(random.randrange(0, 100, 5)) # 0, 5, 10, ..., 95 中随机选一个

序列操作函数

import random

items = ['苹果', '香蕉', '橙子', '葡萄', '西瓜']

# choice(seq) - 随机选择一个元素 print(random.choice(items)) # 例如: 橙子

# choices(seq, k) - 随机选择 k 个元素 (可重复) print(random.choices(items, k=3)) # 例如: ['苹果', '苹果', '西瓜']

# sample(seq, k) - 随机选择 k 个元素 (不可重复) print(random.sample(items, k=3)) # 例如: ['西瓜', '苹果', '香蕉']

# shuffle(seq) - 原地打乱序列顺序 random.shuffle(items) print(items) # 顺序被打乱

种子设置与可重复随机

import random

# seed() - 设置随机种子,使随机数可重复 random.seed(42) print(random.random()) # 0.6394267984578837 random.seed(42) # 重置种子 print(random.random()) # 0.6394267984578837 (相同结果)

# getstate() / setstate() - 保存和恢复随机状态 state = random.getstate() r1 = random.random() random.setstate(state) r2 = random.random() print(r1 == r2) # True

常用分布函数速查表

函数分布类型说明
random()均匀分布[0.0, 1.0) 之间的浮点数
uniform(a, b)均匀分布[a, b] 之间的浮点数
randint(a, b)离散均匀[a, b] 之间的整数
gauss(mu, sigma)正态分布均值为 mu,标准差为 sigma
expovariate(lambd)指数分布参数为 lambd

实际应用示例

  1. 生成随机密码:使用 random.choices 从字符集中随机选择
  2. 抽奖系统:使用 random.choicerandom.sample 从参与者列表中抽选
  3. 数据增强:在机器学习中随机打乱训练数据顺序
  4. 游戏开发:生成随机地图、随机敌人位置等
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 152 篇
0 完成
🔥 0