网站首页 > 技术文章 正文
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。
前期基础教程:
「Python3.11.0」手把手教你安装最新版Python运行环境
讲讲Python环境使用Pip命令快速下载各类库的方法
Python启航:30天编程速成之旅(第2天)-IDE安装
【Python教程】JupyterLab 开发环境安装
Python启航:30天编程速成之旅(第21天)- random
引言
random 是 Python 的一个标准库,提供了一系列函数来生成随机数和随机选择元素。今天将带领大家学习如何使用 random 模块中的各种函数来生成随机数、随机选择列表中的元素、打乱序列等。
导入random模块
首先,导入 random 模块:
import random
基本用法
生成随机整数
randint(a, b) 函数生成一个在 [a, b] 范围内的随机整数。
random_number = random.randint(1, 10)
print(random_number)
生成随机浮点数
random() 函数生成一个在 [0.0, 1.0) 范围内的随机浮点数。
random_float = random.random()
print(random_float)
生成指定范围内的随机浮点数
uniform(a, b) 函数生成一个在 [a, b] 范围内的随机浮点数。
random_uniform = random.uniform(1.0, 10.0)
print(random_uniform)
随机选择
从列表中随机选择一个元素
choice(seq) 函数从序列 seq 中随机选择一个元素。
items = ['apple', 'banana', 'cherry']
random_item = random.choice(items)
print(random_item)
从列表中随机选择多个元素
choices(population, k) 函数从 population 中随机选择 k 个元素,可以重复选择。
items = ['apple', 'banana', 'cherry']
random_items = random.choices(items, k=3)
print(random_items)
从列表中随机选择多个不重复的元素
sample(population, k) 函数从 population 中随机选择 k 个不重复的元素。
items = ['apple', 'banana', 'cherry', 'date', 'elderberry']
random_sample = random.sample(items, 3)
print(random_sample)
打乱序列
打乱列表中的元素顺序
shuffle(x) 函数就地打乱列表 x 中的元素顺序。
items = ['apple', 'banana', 'cherry', 'date', 'elderberry']
random.shuffle(items)
print(items)
随机权重选择
根据权重随机选择元素
choices(population, weights, k) 函数可以从 population 中根据 weights 列表中的权重随机选择 k 个元素。
items = ['apple', 'banana', 'cherry']
weights = [10, 1, 1]
random_weighted_choices = random.choices(items, weights, k=3)
print(random_weighted_choices)
随机种子
设置随机种子
seed(a=None, version=2) 函数用于设置随机数生成器的种子。相同的种子会产生相同的随机数序列。
random.seed(42)
random_number_1 = random.randint(1, 10)
print(random_number_1)
random.seed(42)
random_number_2 = random.randint(1, 10)
print(random_number_2)
高级用法
生成随机高斯分布
gauss(mu, sigma) 函数生成一个符合高斯分布(正态分布)的随机浮点数,均值为 mu,标准差为 sigma。
random_gaussian = random.gauss(0, 1)
print(random_gaussian)
生成随机三角分布
triangular(low, high, mode) 函数生成一个符合三角分布的随机浮点数,最小值为 low,最大值为 high,众数为 mode。
random_triangular = random.triangular(0, 10, 5)
print(random_triangular)
生成随机指数分布
expovariate(lambd) 函数生成一个符合指数分布的随机浮点数,参数 lambd 是速率参数。
random_exponential = random.expovariate(1.0)
print(random_exponential)
生成随机对数正态分布
lognormvariate(mu, sigma) 函数生成一个符合对数正态分布的随机浮点数,均值为 mu,标准差为 sigma。
random_lognormal = random.lognormvariate(0, 1)
print(random_lognormal)
实战示例
随机密码生成器
假设需要生成一个包含字母、数字和特殊字符的随机密码。
import random
import string
def generate_password(length=12):
characters = string.ascii_letters + string.digits + string.punctuation
password = ''.join(random.choices(characters, k=length))
return password
print(generate_password())
随机抽奖程序
假设需要从一个列表中随机抽取一个获奖者。
participants = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
winner = random.choice(participants)
print(f"The winner is: {winner}")
总结
通过本教程,相信大家已经学会了如何使用 Python 标准库 random 中的各种函数来生成随机数、随机选择元素、打乱序列等。random 模块提供了许多强大且灵活的工具,可以帮助我们处理各种随机性相关的任务。
喜欢的条友记得关注、点赞、转发、收藏,你们的支持就是我最大的动力源泉。
- 上一篇: 字节跳动全链路压测(Rhino)的实践
- 下一篇: python机器学习:线性回归中的哑变量转换
猜你喜欢
- 2025-01-14 整理20个Pandas统计函数
- 2025-01-14 一文带您精通Python 函数:全方位指南
- 2025-01-14 python机器学习:线性回归中的哑变量转换
- 2025-01-14 字节跳动全链路压测(Rhino)的实践
- 2025-01-14 一次Java和Python的简单且直观的比较
- 2025-01-14 关于Python函数,你应该知道以下几点基础知识
- 2025-01-14 Python实现概率分布,学数据统计的需要收藏
- 2025-01-14 Python方差分析
- 2025-01-14 文本聚类分析(一)-python
- 2025-01-14 了解随机游走模型和移动平均过程(Python)
- 06-24Python调用Docker API的使用方式(pycharm docker 调试)
- 06-24青少年Python编程系列28:Python中函数的递归调用
- 06-24python调用sqlite数据库案例(python 调用数据库)
- 06-24【Python机器学习系列】基于Flask来构建API调用机器学习模型服务
- 06-24通过pybind11来实现python调用C++接口(一)
- 06-24Python编程调用Deepseek API创建智能体
- 06-24python多装饰器针对函数、类、方法的调用顺序说明
- 06-24Python Qt GUI设计:Python调用UI文件的两种方法(基础篇—3)
- 271℃Python短文,Python中的嵌套条件语句(六)
- 269℃PythonNet:实现Python与.Net代码相互调用!
- 269℃python笔记:for循环嵌套。end=""的作用,图形打印
- 263℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 263℃Python实现字符串小写转大写并写入文件
- 122℃原来2025是完美的平方年,一起探索六种平方的算吧
- 103℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 97℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- Python调用Docker API的使用方式(pycharm docker 调试)
- 青少年Python编程系列28:Python中函数的递归调用
- python调用sqlite数据库案例(python 调用数据库)
- 【Python机器学习系列】基于Flask来构建API调用机器学习模型服务
- 通过pybind11来实现python调用C++接口(一)
- Python编程调用Deepseek API创建智能体
- python多装饰器针对函数、类、方法的调用顺序说明
- Python Qt GUI设计:Python调用UI文件的两种方法(基础篇—3)
- Python | Django 外部脚本调用 models 数据库
- 自学Python第九天——操作列表(python操作步骤)
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)