Python 中 随机数 random库 学习与使用

news2024/9/27 9:26:35

        python中的随机数应用大体包含,随机整数随机浮点数 和 获取随机数序列三类。

一. 随机整数

1.1 随机整数,包含上下限(闭区间)

randint(a, b):随机选取 [a, b] 之间的一个整数,随机整数包含a 和 b,因此是左右闭区间。

# random.randint(a, b)
r = random.randint(0, 100)
print(r)

1.2 随机整数,包含下限,不包含上限(区间左闭右开 )

randrange(a, b):随机选取 [a, b) 之间的一个整数,随机整数包含a,不包含b。

randrange包含三个参数:

1. start :下限

2. stop :上限

3. step :可选参数,用于设置步长

# random.randrange(a, b)
r = random.randrange(0, 100)

# 设置步长
r = random.randrange(0, 100, 5)
print(r)

# output,因为设置了步长5,所以只能从0,5,10,15,...,95,之间随机
35

二. 随机浮点数

 2.1 随机0~1之间的浮点数,!包含0,不包含1

r = random.random()
print(r)

2.2  随机区间内的浮点数

        random.uniform(a, b):随机闭区间 [a, b] 内的浮点数,其中不限制 a 和 b 的大小。

# random.uniform(a, b)
# 随机选取闭区间[20, 50]内的一个浮点数
r = random.uniform(20, 50)

# 随机选取闭区间[1, 15]内的一个浮点数
r = random.uniform(15, 1)

三. 序列相关随机

3.1 从已有的序列中随机选择其中一个元素 或 多个元素(可重复,放回采样)

        (1) random.choice(a):从有序序列里随机获取一个其中数据(有序序列包括字符串、列表、元组等)。     

# 1. 从字符串中随机选取一个字符
r = random.choice('abcdefg')
print(r)
# 2. 从元组中随机选取一个元素
r = random.choice(('aa', 'bb', 'cc', 'dd'))
print(r)
# 3. 从list列表中随机选取一个元素
r = random.choice(['a1', 'a2', 'a3', 'a4'])
print(r)
# 4. 从含有多个类型元素的list列表中选取多个元素
r = random.choice([1, 'abc', ('e, f')])
print(r)


# output
# b
# aa
# a4
# abc

        (2) random.choices(a,weight,k):从有序序列里随机获取多个其中数据(有序序列包括字符串、列表、元组等)。

random.choices() 包含三个参数:

1. a :有序序列,从该序列中随机选择 1个 或 多个元素

2. weight :可选参数,表示概率,如果不设置就默认每个数据被取到的概率相同

3. k :可选参数,表示随机获取的次数

返回值:列表类型,内部元素可重复

# 当元素集合是list时
# 1. 默认等概率取值,取2次
r = random.choices(['a1', 'a2', 'a3', 'a4'], k = 2)
print(type(r))
print(r)

# output
# <class 'list'>
# ['a3', 'a2']

# 2. 指定不同元素被获取的概率,取2次
r = random.choices(['a1', 'a2', 'a3', 'a4'], weights=[6, 1, 1, 1], k = 2)
print(r)

# output, 可知a1被获取的概率是60%,
# ['a1', 'a1']

        注意!:当元素列表是 list字符串 或 元组 时,random.choices()返回值类型也是 list

# 元组类型
t = ('t1', 't2', 't3', 't4')
print(type(t))
r = random.choices(t, weights=[1, 1, 1, 6], k = 2)
print(type(r))

# output
# <class 'tuple'>
# <class 'list'>

3.2 从已有的序列中随机选择其中一个元素 或 多个元素(不可重复,不放回采样)

       random.sample(a,k):在已知序列 a 中,一次性 + 随机 选取 k 个,同一个元素不会被重复选择;返回值类型 是 list。

        注意:元素集合的长度 必须大于 选择次数。

r = random.sample([1, 1, 1, 1, 2], k=2)
print(type(r))
print(r)

# output
# <class 'list'>
# [1, 2]

3.3 随机打乱序列顺序

        random.shuffle(a):随机打乱元素集合列表a,然后将结果覆盖原列表a。
        注意:被打乱的序列必须是可变的,比如列表;不能是是元组,因为元组是不可修改的。

a = [1, 2, 3, 4, 5]
random.shuffle(a)
print(a)

# output
# [3, 1, 5, 2, 4]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis配置参数

一、基础配置 1. 连接数据库 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/cscardata?useUnicodetrue&characterEncodingUTF-8&serverTimezoneGMT%2B8username: rootpassword: roottype: com.alibaba.druid.poo…

公开景区监控——缓解交通拥堵,优化出行体验

阚昊宇 XXXXXXXXXXXXX 1 引言 随着疫情时代过去&#xff0c;旅游需求不断增长&#xff0c;节假日热点景区的人流量持续攀高。在节假日调休机制的共同影响下&#xff0c;旅游景区内人群密度不断增加。5月3日&#xff0c;携程发布的《2023年五一出游数据报告》显示&#xff0c;…

15天学习MySQL计划-主从复制(运维篇)第十三天

15天学习MySQL计划-主从复制&#xff08;运维篇&#xff09;第十三天 主从复制 1.概述 ​ 主从复制是指主数据库的DDL和DML操作通过二进制日志传到从库服务器中&#xff0c;然后在从库上对这些日志重新执行&#xff08;也叫做重做&#xff09;&#xff0c;从而使得从库和主库…

计算机操作系统实验:银行家算法模拟

目录 前言实验目的实验内容实验原理实验过程代码如下代码详解算法过程运行结果 总结 前言 本文是计算机操作系统实验的一部分&#xff0c;主要介绍了银行家算法的原理和实现。银行家算法是一种用于解决多个进程对多种资源的竞争和分配的算法&#xff0c;它可以避免死锁和资源浪…

写作业用白光还是暖光?盘点色温4000K的护眼台灯

台灯的白光或者暖光指的是台灯的色温&#xff0c;低色温的光线看起来发黄发红&#xff0c;高色温的光线发白发蓝。 如果灯光的光源是高品质光源&#xff0c;本身没有蓝光问题&#xff0c;那么色温的选择对护眼的影响是比较少的&#xff0c;更多的是对人学习工作状态&#xff0c…

TIM-编码器—STM32

TIM-编码器—STM32 EncoderInterface 编码器接口 编码器接口可接收增量(正交) 编码器的信号&#xff0c;根据编码器旋转产生的正交信号脉冲&#xff0c;自动控制CNT自增或自减&#xff0c;从而指示编码器的位置、旋转方向和旋转速度 每个高级定时器和通用定时器都拥有1个编码器…

transformer在计算机视觉中的应用

Transformer 在计算机视觉中的应用 论文地址&#xff1a; https://arxiv.org/abs/1706.03762 Vision Transformer An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 代码地址&#xff1a; https://github.com/google-research/vision_transfor…

总结840

学习目标&#xff1a; 5月&#xff08;完成张宇强化18讲&#xff0c;背诵25篇短文&#xff0c;熟词僻义300词基础词&#xff09; 每日必复习&#xff08;5分钟&#xff09; 看了进步本中的一道数列题 学习内容&#xff1a; 暴力英语&#xff1a;继续艾玛沃特森的演讲&#…

Winsw实现springboot的jar包的windows服务,实现开机自启动

在windows上运行Springboot打包jar&#xff0c;如何后台运行及注册成Windows服务&#xff1f; 一、确认.NET Framework版本 1、在地址栏上输入“C:\Windows\Microsoft.NET\Framework”&#xff0c;按回车键 2、可以看到.NET Framework版本。可以看到最高版本为4.0 二、winsw &…

node 开发

文章目录 快速认识node开始使用node编程hello world模块和包什么是模块创建和加载模块创建包node.js 的包管理本地模式 和全局模式创建全局连接包的发布 调试 快速认识node 开始使用node编程 hello world 打开你的文本编辑器&#xff0c;在上面输入&#xff1a; console。l…

【Java EE】-使用Fiddler抓包以及HTTP的报文格式

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 在满园弥漫的沉静的光芒之前&#xff0c;一个人更容易看到时间&#xff0c;并看到自己的身影。——史铁生《我与地坛》 主要内容&#xff1a;使用FIddler抓包的…

船舶建造概论(船舶建造工艺任务与现代造船模式)

船舶建造概论 1 船舶建造概论1.1 船舶建造工艺主要任务1.2 船舶建造流程&#xff08;1&#xff09;钢材料预处理&#xff08;2&#xff09; 钢材料加工&#xff08;3&#xff09;分段制作&#xff08;4&#xff09;总段制作&#xff08;5&#xff09;船台合拢&#xff08;6&…

【漏洞复现】Apache Superset 未授权访问漏洞(CVE-2023-27524)

文章目录 前言声明一、Apache Superset 简介二、影响范围三、漏洞复现四、整改建议 前言 Apache Superset 存在未授权访问漏洞&#xff0c;攻击者可利用该漏洞验证和访问未经授权的资源。 声明 本篇文章仅用于漏洞复现与技术研究&#xff0c;请勿利用文章内的相关技术从事非法…

2.计算机基础

文章目录 1.冯诺依曼体系结构&#xff08;1&#xff09;冯诺依曼体系结构思想&#xff08;2&#xff09;五大部件介绍&#xff08;3&#xff09;现代计算机逻辑架构 2.现代计算机硬件图 和 CPU&#xff08;1&#xff09;现代计算机硬件图&#xff08;2&#xff09;CPU运算器结构…

微软正式宣布 Win10 死刑,Win11 LTSC要来了

微软在 2015 年带来了 Windows 10&#xff0c;PC 操作系统也由此进入到一个新的篇章。 如此前每代新系统一样&#xff0c;Windows 10 发布之初&#xff0c;稳定性不足&#xff0c;BUG 众多。 全新的界面设计、交互逻辑以及操作习惯上的强行改变让其很长一段时间都不那么受待见。…

static的常见用法

参考链接&#xff1a;https://blog.csdn.net/guotianqing/article/details/79828100 C语言 作用&#xff1a;提高代码的模块化&#xff0c;提高代码的可读性。 普通的局部变量&#xff1a;在最开始的时候不会进行初始化&#xff0c;存储在栈空间&#xff0c;使用完毕就会释放…

100ASK_全志V853-PRO开发板 环境配置及编译烧写

0.前言 本章主要介绍关于100ASK-V853-PRO开发板的Tina SDK包的下载和编译打包生成镜像&#xff0c;并将镜像烧录到100ASK-V853-PRO开发板上。在进行100ASK-V853-PRO开发板的环境配置前需要获取配置虚拟机系统&#xff0c;可以参考&#xff1a;https://dongshanpi.com/Dongshan…

「蓝桥杯」扫地机器人

扫地机器人 题目描述 小明公司的办公区有一条长长的走廊&#xff0c;由 N 个方格区域组成&#xff0c;如下图所示。 走廊内部署了 K 台扫地机器人&#xff0c;其中第 i 台在第 A_i 个方格区域中。已知扫地机器人每分钟可以移动到左右相邻的方格中&#xff0c;并将该区域清扫干…

图的着色学习

图的边着色 排课表问题&#xff1a;设有m位教师&#xff0c;n个班级&#xff0c;教师xi要给班级yj上pij节课&#xff0c;求如何在最少节次排完所有课。 图论模型&#xff1a;令X{x1,x2,…,xm}&#xff0c;Y{y1,y2,…,yn}&#xff0c;xi与yj间连pij条边&#xff0c;得偶图G(X,…

【prism系列】子窗口中如何实现区域(Region)管理

前言 在之前系列文章《Region的用法》中&#xff0c;我提到无法在子窗口中实现区域管理&#xff0c;最近经过尝试发现其实是可以的&#xff0c;只是少了一个步骤而已&#xff01;Region具体细节还请参考这篇。 【Prism系列】Region的用法_prism region_code bean的博客-CSDN博…