百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python中random模块的应用场景

itomcoil 2025-03-12 15:51 7 浏览


任务要求

1.掌握基础随机数生成方法

2.实现序列随机操作和概率分布模拟

任务分析

random模块的核心功能特点:

1.伪随机生成:基于梅森旋转算法生成序列

2.范围控制:支持整数/浮点数区间限定

3.序列操作:支持选择、打乱、采样等操作

4.种子控制:random.seed()实现随机重现

5.扩展功能:正态分布、加权选择等高级特性

任务实现

场景一:基础数值生成

import random
# 生成1 - 10的随机整数(闭区间)
num = random.randint(1, 10)
print(f"随机整数: {num}")
# 生成0.0 - 5.0的随机浮点数
float_num = random.uniform(0, 5)
print(f"随机浮点数: {float_num:.2f}")
# 生成0 - 100的随机偶数
even_num = random.randrange(0, 101, 2)
print(f"随机偶数: {even_num}")

运行结果:

随机整数: 4

随机浮点数: 2.23

随机偶数: 84

进程已结束,退出代码为 0

说明:

  • import random导入random库。这个库包含了许多生成随机数的函数。
  • random.randint(1, 10)生成了一个1到10之间的随机整数,包括1和10(闭区间)。这个函数接收两个参数,分别是生成随机整数的范围起始值和结束值。
  • random.uniform(0, 5)生成了一个0.0到5.0之间的随机浮点数。random.uniform(a, b)函数用于生成一个[a, b)区间的浮点数。
  • random.randrange(0, 101, 2)生成了一个0到100之间的随机偶数。random.randrange(start, stop, step)函数用于生成一个在[start, stop)范围内,以step为间隔的随机整数。这里设定start为0,stop为101(实际取值到100),step为2,即生成的随机数将是0, 2, 4, ..., 100中的一个。

场景二:序列随机操作

import random
colors = [
'红', '蓝', '绿', '金']
# 随机选择单个元素
print("随机颜色:", random.choice(colors))
# 随机选择3个不重复元素
print("采样结果:", random.sample(colors, 3))
# 打乱原序列顺序
random.shuffle(colors)
print("乱序结果:", colors)

运行结果:

随机颜色: 金

采样结果: ['金', '红', '绿']

乱序结果: ['红', '金', '蓝', '绿']

进程已结束,退出代码为 0

说明:

  • random.choice(colors)从colors列表中随机选择一个元素。random.choice()函数接受一个序列作为参数,并返回该序列中的一个随机元素。
  • random.sample(colors, 3)从colors列表中随机选择三个不重复的元素。random.sample()函数接受两个参数:一个是要从中选择的序列,另一个是需要选择的元素数量。该函数返回一个新的列表,其中包含从原序列中随机采样出的指定数量的元素,且不重复。
  • random.shuffle(colors)对colors列表进行原地随机打乱。random.shuffle()函数接受一个列表作为参数,并直接修改该列表,使其元素顺序随机化。

场景三:概率分布生成

import random
# 生成正态分布数据(均值100,标准差15)
normal_data = [round(random.normalvariate(100, 15)) for _ in range(5)]
print("正态分布:", normal_data)
# 生成权重选择(红: 30 %,蓝: 50 %,绿: 20 %)
print("加权选择:", random.choices(['红', '蓝', '绿'], weights=[3, 5, 2], k=3))

运行结果:

正态分布: [113, 131, 84, 158, 79]

加权选择: ['红', '红', '蓝']

进程已结束,退出代码为 0

说明:

  • [round(random.normalvariate(100, 15)) for _ in range(5)]使用列表生成式来创建一个包含5个元素的列表。random.normalvariate(100, 15)用于生成一个符合均值为100,标准差为15的正态分布的随机数。
  • random.choices()用于从一个非空序列中随机选择元素。['红', '蓝', '绿']是选择的目标序列。weights=[3, 5, 2]表示给每个颜色指定了一个权重,即红、蓝、绿被选中的概率是3:5:2。这意味着蓝色被选中的概率最高,绿色次之,红色最低。k=3表示在这个加权选择中得到3个结果。即random.choices()从目标序列中按照给定的权重随机选择3个元素,并返回一个长度为3的列表。

场景四:随机验证码生成

import random
def generate_code(length=6):
chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'
return ''.join(random.choices(chars, k=length))
print("验证码:", generate_code())

运行结果:

验证码: 5DT22Z

进程已结束,退出代码为 0

场景五:随机数据采样

import random
dataset =
list(range(1, 101))
# 不放回抽样10个
sample1 = random.sample(dataset, 10)
# 可重复抽样15个
sample2 = random.choices(dataset, k=15)
print("不放回样本:", sample1)
print("可重复样本:", sample2)

运行结果:

不放回样本: [74, 80, 5, 72, 59, 27, 57, 87, 55, 32]

可重复样本: [30, 20, 68, 61, 59, 86, 66, 27, 16, 9, 58, 72, 62, 36, 4]

进程已结束,退出代码为 0

说明:

  • random.sample()从dataset中随机选择10个独特的元素。
  • random.choices()从dataset中选择15个元素,并且允许选择重复的元素。

相关推荐

Python Qt GUI设计:将UI文件转换Python文件三种妙招(基础篇—2)

在开始本文之前提醒各位朋友,Python记得安装PyQt5库文件,Python语言功能很强,但是Python自带的GUI开发库Tkinter功能很弱,难以开发出专业的GUI。好在Python语言的开放...

Connect 2.0来了,还有Nuke和Maya新集成

ftrackConnect2.0现在可以下载了--重新设计的桌面应用程序,使用户能够将ftrackStudio与创意应用程序集成,发布资产等。这个新版本的发布中还有两个Nuke和Maya新集成,...

Magicgui:不会GUI编程也能轻松构建Python GUI应用

什么是MagicguiMagicgui是一个Python库,它允许开发者仅凭简单的类型注解就能快速构建图形用户界面(GUI)应用程序。这个库基于Napari项目,利用了Python的强大类型系统,使得...

Python入坑系列:桌面GUI开发之Pyside6

阅读本章之后,你可以掌握这些内容:Pyside6的SignalsandSlots、Envents的作用,如何使用?PySide6的Window、DialogsandAlerts、Widgets...

Python入坑系列-一起认识Pyside6 designer可拖拽桌面GUI

通过本文章,你可以了解一下内容:如何安装和使用Pyside6designerdesigner有哪些的特性通过designer如何转成python代码以前以为Pyside6designer需要在下载...

pyside2的基础界面(pyside2显示图片)

今天我们来学习pyside2的基础界面没有安装过pyside2的小伙伴可以看主页代码效果...

Python GUI开发:打包PySide2应用(python 打包pyc)

之前的文章我们介绍了怎么使用PySide2来开发一个简单PythonGUI应用。这次我们来将上次完成的代码打包。我们使用pyinstaller。注意,pyinstaller默认会将所有安装的pack...

使用PySide2做窗体,到底是怎么个事?看这个能不能搞懂

PySide2是Qt框架的Python绑定,允许你使用Python创建功能强大的跨平台GUI应用程序。PySide2的基本使用方法:安装PySide2pipinstallPy...

pycharm中conda解释器无法配置(pycharm安装的解释器不能用)

之前用的好好的pycharm正常配置解释器突然不能用了?可以显示有这个环境然后确认后可以conda正在配置解释器,但是进度条结束后还是不成功!!试过了pycharm重启,pycharm重装,anaco...

Conda使用指南:从基础操作到Llama-Factory大模型微调环境搭建

Conda虚拟环境在Linux下的全面使用指南:从基础操作到Llama-Factory大模型微调环境搭建在当今的AI开发与数据分析领域,conda虚拟环境已成为Linux系统下管理项目依赖的标配工具。...

Python操作系统资源管理与监控(python调用资源管理器)

在现代计算环境中,对操作系统资源的有效管理和监控是确保应用程序性能和系统稳定性的关键。Python凭借其丰富的标准库和第三方扩展,提供了强大的工具来实现这一目标。本文将探讨Python在操作系统资源管...

本地部署开源版Manus+DeepSeek创建自己的AI智能体

1、下载安装Anaconda,设置conda环境变量,并使用conda创建python3.12虚拟环境。2、从OpenManus仓库下载代码,并安装需要的依赖。3、使用Ollama加载本地DeepSe...

一文教会你,搭建AI模型训练与微调环境,包学会的!

一、硬件要求显卡配置:需要Nvidia显卡,至少配备8G显存,且专用显存与共享显存之和需大于20G。二、环境搭建步骤1.设置文件存储路径非系统盘存储:建议将非安装版的环境文件均存放在非系统盘(如E盘...

使用scikit-learn为PyTorch 模型进行超参数网格搜索

scikit-learn是Python中最好的机器学习库,而PyTorch又为我们构建模型提供了方便的操作,能否将它们的优点整合起来呢?在本文中,我们将介绍如何使用scikit-learn中的网格搜...

如何Keras自动编码器给极端罕见事件分类

全文共7940字,预计学习时长30分钟或更长本文将以一家造纸厂的生产为例,介绍如何使用自动编码器构建罕见事件分类器。现实生活中罕见事件的数据集:背景1.什么是极端罕见事件?在罕见事件问题中,数据集是...