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

一日一技:Python 中的random模块

itomcoil 2025-02-08 11:21 12 浏览

Python 中的random模块

Python随机模块教程展示了如何在Python中生成伪随机数。

随机数发生器

随机数生成器(RNG)生成一组值,这些值在外观上不显示任何可区分的模式。随机数发生器分为两类:硬件随机数发生器和伪随机数发生器。硬件随机数发生器被认为可以产生真正的随机数。伪随机数生成器根据软件算法生成值。它们产生看起来随机的值。但是,如果算法已知,则这些值是确定性的并且可以重现。

在计算中,随机生成器用于赌博,游戏,模拟或加密。

注意:为了安全起见,必须使用加密安全的伪随机数生成器。

为了提高伪随机数生成器的质量,操作系统使用从设备驱动程序收集的环境噪声,用户输入延迟或一个或多个硬件组件的抖动。这是密码安全的伪随机数生成器的核心。


种子

种子是一个初始化随机数生成器的值。 随机数生成器通过对先前的值执行某些运算来产生值。 当算法开始时,种子是生成器操作所依据的初始值。 生成器中最重要和最困难的部分是提供接近真实随机数的种子。

在Python中,random.seed函数提供了种子值。 如果未明确指定该值,则Python使用系统时钟或其他随机源。


注意:同一种子产生相同的伪随机数集。


Python中的module模块- same seed

在下面的示例中,我们使用相同的seed.

import random


myseed = 16

random.seed(myseed)

print(random.random())
print(random.random())
print(random.random())

print('********************************')

random.seed(myseed)

print(random.random())
print(random.random())
print(random.random())

输出结果为:

0.36152277491407514
0.480480665601294
0.4169526266056648
********************************
0.36152277491407514
0.480480665601294
0.4169526266056648


Python模块module中 random.randint方法:

random.randint函数生成值[x,y]之间的整数,举例说明,如下:

import random


val = random.randint(1, 10)
print(val)

val = random.randint(1, 10)
print(val)

val = random.randint(1, 10)
print(val)

val = random.randint(1, 10)
print(val)

上面的例子结果显示产生数字1到10之间的四个随机整数,结果如下:

10
4
9
3

Python模块module中的 random.randrange方法:

random.randrange函数不包括该间隔的右侧。 它选择[x,y)之间的值,示例如下:

import random


val = random.randrange(1, 10)
print(val)

val = random.randrange(1, 10)
print(val)

val = random.randrange(1, 10)
print(val)

val = random.randrange(1, 10)
print(val)

上面的示例生成数字1到10之间的四个随机整数,其中排除了10这个值,大家可以去操作体验一下。


random.uniform方法

random.uniform函数在值[x,y]之间生成随机浮点数,示例如下:

import random


val = random.uniform(1, 10)
print(val)

val = random.uniform(1, 10)
print(val)

val = random.uniform(1, 10)
print(val)

val = random.uniform(1, 10)
print(val)

该示例在数字1和10之间产生四个随机浮点数,执行结果如下:

9.594596536362012
5.832673168195081
6.7942727933257
7.035310921661894

random.choice

random.choice函数从非空序列返回一个随机序列,示例如下:

import random


words = ['sky', 'storm', 'rock', 'falcon', 'forest']


val = random.choice(words)
print(val)

val = random.choice(words)
print(val)

val = random.choice(words)
print(val)

val = random.choice(words)
print(val)

执行结果如下:

forest
forest
sky
storm

random.shuffle

random.shuffle函数可对序列进行随机排序

import random


words = ['sky', 'storm', 'rock', 'falcon', 'forest']


random.shuffle(words)
print(words)

random.shuffle(words)
print(words)

执行结果如下:

['storm', 'falcon', 'rock', 'sky', 'forest']
['falcon', 'storm', 'rock', 'forest', 'sky']


random.sample

random.sample允许从序列中随机选择n个唯一元素的样本,示例如下:

import random


words = ['sky', 'storm', 'rock', 'falcon', 'forest']


sample = random.sample(words, 3)
print(sample)

sample = random.sample(words, 3)
print(sample)

执行结果如下:

['rock', 'storm', 'falcon']
['forest', 'sky', 'rock']

Python secrets

secrets模块用于生成适用于管理数据(例如密码,帐户身份验证或安全令牌)的密码学强随机数,示例如下:

import secrets
import string


print(secrets.token_hex(12))
print(secrets.token_urlsafe(12))

alphabet = string.ascii_letters + string.digits
password = ''.join(secrets.choice(alphabet) for i in range(8))

print(password)

token_hex函数以十六进制返回随机文本字符串。 token_urlsafe函数返回一个随机的URL安全文本字符串。

alphabet = string.ascii_letters + string.digits
password = ''.join(secrets.choice(alphabet) for i in range(8))

在这里,我们生成一个八个字符的字母数字密码,执行结果如下:

69e6919fc04cbd6f9f5a25dc
eLL8-yT4cictksh8
YbpPzXvt

好了,在这一节中我们介绍了python中的random模块.,random这个模块是python中自带的,不需要安装,拿起来就可以直接用了。

希望对大家有用,有用的话,目的也就达到了。

相关推荐

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.什么是极端罕见事件?在罕见事件问题中,数据集是...