【Python学习笔记】第二十八节 Python random 模块

news2024/11/18 19:59:49

一、Python random简介

Python random 模块主要用于生成随机数。大部分python人都会用,但是一般人都是使用randint()帮我们生成某个范围的整数,但其实random模块还有很多非常使用的功能供我们使用,接下来我们就一一了解一下我们的random。

要使用 random 函数必须先导入:

import random

查看 random 模块中的内容:

1、random.random()方法

返回一个随机数,它在半开放区间 [0,1) 范围内,包含 0 但不包含 1,不需要设置参数

>>> random.random()
0.2616511625214011
>>> random.random()
0.8890603952284217
>>> random.random()
0.8248056914058357
>>> random.random()
0.2799936407293714
>>> random.random()
0.3768217306914913
>>> random.random()
0.7331169151350899
>>> random.random()
0.9229218977171018
>>> random.random()
0.36667098403412324

2、random.randint()方法

这是人们用得最多的方法,生成某个范围的随机整数,可以设置两个参数

# coding=utf-8

# 导入 random 包
import random

# 生成随机数
print(random.random())
# 生成某个范围的随机整数
print(random.randint(1, 10))
print(random.randint(1, 10))
print(random.randint(1, 10))
print(random.randint(1, 10))
print(random.randint(1, 10))

运行结果:

3、random.randrange()方法

random.randrange(开始, 结束, 步长)

此方法可以写三个参数,跟random.randint()是一样的,都是生成整数,但可以加上步长,可以设置1-3个参数

步长:每一次加几,好比循环里面的增量。默认是1。下图,我步长设置了2,就只会生成1-10之间的基数

# coding=utf-8

# 导入 random 包
import random

# 生成随机数
# print(random.random())
# 生成某个范围的随机整数
# print(random.randint(1, 10))
# 从 range(start, stop, step) 返回一个随机选择的元素。
print(random.randrange(1, 10, 2))
print(random.randrange(1, 10, 2))
print(random.randrange(1, 10, 2))

运行结果:

4、random.uniform()方法

返回一个随机浮点数 N ,当 a <= b 时 a <= N <= b ,当 b < a 时 b <= N <= a 。

设置某个范围内的浮点数,可以设置两个参数

# coding=utf-8

# 导入 random 包
import random

# 生成随机数
# print(random.random())
# 生成某个范围的随机整数
# print(random.randint(1, 10))

print(random.uniform(1.2, 9.9))

运行结果:

4.882993131511566

5、random.choice()方法

随机输出choice里面的参数,拥有此方法,就不再需要写遍历了

从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError。

# coding=utf-8

# 导入 random 包
import random

# 生成随机数
# print(random.random())
# 生成某个范围的随机整数
# print(random.randint(1, 10))
# 从 range(start, stop, step) 返回一个随机选择的元素。
print(random.randrange(1, 10, 2))
print(random.randrange(1, 10, 2))
print(random.randrange(1, 10, 2))
# 返回一个随机浮点数 N
# print(random.uniform(1.2, 9.9))
# 随机输出choice里面的参数
print(random.choice("helloworld"))

运行结果:

l

6、random.sample()方法

返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。

# coding=utf-8

# 导入 random 包
import random

# 生成随机数
# print(random.random())
# 生成某个范围的随机整数
# print(random.randint(1, 10))
# 从 range(start, stop, step) 返回一个随机选择的元素。

# 返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。
print(random.sample("helloworld", 4))

运行结果:

['h', 'l', 'l', 'o']

7、random.shuffle()方法

将序列 随机打乱位置。

# coding=utf-8

# 导入 random 包
import random

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(arr)
print(arr)

运行结果:

[2, 6, 8, 4, 9, 5, 1, 3, 7]

8、seed() 方法

改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。

# coding=utf-8

# 导入 random 包
import random

# 生成随机数
# print(random.random())
# 生成某个范围的随机整数
# print(random.randint(1, 10))

random.seed()
print("使用默认种子生成随机数:", random.random())
print("使用默认种子生成随机数:", random.random())

random.seed(10)
print("使用整数 10 种子生成随机数:", random.random())
random.seed(10)
print("使用整数 10 种子生成随机数:", random.random())

random.seed("hello", 2)
print("使用字符串种子生成随机数:", random.random())

运行结果:

使用默认种子生成随机数: 0.8557562135918899
使用默认种子生成随机数: 0.8674208965484477
使用整数 10 种子生成随机数: 0.5714025946899135
使用整数 10 种子生成随机数: 0.5714025946899135
使用字符串种子生成随机数: 0.3537754404730722

二、分布的随机数

关于这种分布的随机,在我们python里不是太常用,以下这张图是从网络上截取的,如果有兴趣的小伙伴可以更加深入了解

三、random 模块常用方法

random 模块方法如下:

方法

描述

seed()

初始化随机数生成器

getstate()

返回捕获生成器当前内部状态的对象。

setstate()

state 应该是从之前调用 getstate() 获得的,并且 setstate() 将生成器的内部状态恢复到 getstate() 被调用时的状态。

getrandbits(k)

返回具有 k 个随机比特位的非负 Python 整数。 此方法随 MersenneTwister 生成器一起提供,其他一些生成器也可能将其作为 API 的可选部分提供。 在可能的情况下,getrandbits() 会启用 randrange() 来处理任意大的区间。

randrange()

从 range(start, stop, step) 返回一个随机选择的元素。

randint(a, b)

返回随机整数 N 满足 a <= N <= b。

choice(seq)

从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError。

choices(population, weights=None, *, cum_weights=None, k=1)

从 population 中选择替换,返回大小为 k 的元素列表。 如果 population 为空,则引发 IndexError。

shuffle(x[, random])

将序列 x 随机打乱位置。

sample(population, k, *, counts=None)

返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。

random()

返回 [0.0, 1.0) 范围内的下一个随机浮点数。

uniform()

返回一个随机浮点数 N ,当 a <= b 时 a <= N <= b ,当 b < a 时 b <= N <= a 。

triangular(low, high, mode)

返回一个随机浮点数 N ,使得 low <= N <= high 并在这些边界之间使用指定的 mode 。 low 和 high 边界默认为零和一。 mode 参数默认为边界之间的中点,给出对称分布。

betavariate(alpha, beta)

Beta 分布。 参数的条件是 alpha > 0 和 beta > 0。 返回值的范围介于 0 和 1 之间。

expovariate(lambd)

指数分布。 lambd 是 1.0 除以所需的平均值,它应该是非零的。

gammavariate()

Gamma 分布( 不是伽马函数) 参数的条件是 alpha > 0 和 beta > 0。

gauss(mu, sigma)

正态分布,也称高斯分布。 mu 为平均值,而 sigma 为标准差。 此函数要稍快于下面所定义的 normalvariate() 函数。

lognormvariate(mu, sigma)

对数正态分布。 如果你采用这个分布的自然对数,你将得到一个正态分布,平均值为 mu 和标准差为 sigma 。 mu 可以是任何值,sigma 必须大于零。

normalvariate(mu, sigma)

正态分布。 mu 是平均值,sigma 是标准差。

vonmisesvariate(mu, kappa)

冯·米塞斯分布。 mu 是平均角度,以弧度表示,介于0和 2*pi 之间,kappa 是浓度参数,必须大于或等于零。 如果 kappa 等于零,则该分布在 0 到 2*pi 的范围内减小到均匀的随机角度。

paretovariate(alpha)

帕累托分布。 alpha 是形状参数。

weibullvariate(alpha, beta)

威布尔分布。 alpha 是比例参数,beta 是形状参数。

四、总结

其实我们的random模块还是有很多非常使用的方法呢,使用起来也是非常的简单,灵活运用起来可以帮助我们节省很多代码。

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

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

相关文章

JavaWeb系列之tomcat 服务器安装

文章目录一、JavaWeb应用程序架构B/S 架构C/S 架构B/S 与 C/S 对比MVC设计模式二、MVCMVC 开发项目搭建Web 服务器tomcat 服务器Idea 集成 tomcat第一个 JavaWeb 项目三、JSP 技术jsp 与 servlet 联系与区别一、JavaWeb 简介 JavaWeb 可以理解成使用 java 进行应用程序开发&am…

Windows-jdk8/jdk16安装

Windows-JAVA jdk-8安装教程 下载地址 百度网盘 提取码&#xff1a;Chen 官网 安装jdk8 双击打开下载的安装包 点击下一步 更改安装目录 点击下一步 修改Java安装目录 点击下一步 完成 配置环境变量 按住WindowsR 打开运行窗口 输入 sysdm.cpl 打开系统属性——》高级—…

华为机试题:HJ102 字符统计(python)

文章目录&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;Python3实现&#xff08;3&#xff09;知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

【Redis】Redis分片集群

【Redis】Redis分片集群 文章目录【Redis】Redis分片集群1. 搭建分片集群1.1 分片集群结构1.2 搭建分片集群1.2.1 集群结构1.2.2 准备实例和配置1.2.3 启动1.2.4 创建集群1.2.5 测试2. 散列插槽2.1 总结3. 集群伸缩4. 故障转移4.1 数据迁移5. RedisTemplate访问分片集群1. 搭建…

GEE开发之ERA5(气温、降水、压力、风速等)数据获取和分析

GEE开发之ERA5&#xff08;气温、降水、压力、风速等&#xff09;数据获取和分析1.ERA5介绍2.初始ERA5数据2.1 DAILY代码2.2 MONTHLY代码3.遥感影像查看&#xff08;DAILY之mean_2m_air_temperature&#xff09;4.逐日数据分析和获取(以mean_2m_air_temperature为例)5.逐月数据…

【Storm】【二】Storm和流处理简介

Storm和流处理简介 一、Storm1.1 简介1.2 Storm 与 Hadoop对比1.3 Storm 与 Spark Streaming对比1.4 Storm 与 Flink对比二、流处理2.1 静态数据处理2.2 流处理一、Storm 1.1 简介 Storm 是一个开源的分布式实时计算框架&#xff0c;可以以简单、可靠的方式进行大数据流的处理…

基于 explore_lite包 的单个机器人自主探索建图

文章目录一、简介二、安装 explore_lite三、launch 文件配置四、实验效果五、常见问题机器人自主建图有很多方式&#xff0c;比如基于位置边界的map-explore&#xff0c;基于快速搜索树的rrt-explore&#xff0c;指定区域自主探索建图frontier-explore&#xff0c;这几种方法各…

SQL速查

学习自C语言中文网SQL教程笔记&#xff0c;该笔记为速查笔记&#xff0c;学习还是看原教程文章&#xff1a;http://c.biancheng.net/sql/ SQL命令 SQL 是关系型数据库的标准语言&#xff0c;SQL关键字不区分大小写 SQL语句分为以下三种类型&#xff1a; DML: Data Manipulat…

中国不缺高端产品,缺的只是高端服务

作者 | 曾响铃 文 | 响铃说 最近&#xff0c;响铃受邀参加了讯飞智能办公本莫比俱乐部在广州举办的用户研学活动&#xff0c;感触颇多。 为什么会有这趟经历&#xff1f;说来也巧&#xff0c;前段时间因为开会需要入手了讯飞智能办公本X2&#xff0c;成了他们的用户&#xf…

20- tensorflow实现 10_monkeys分类 (tensorflow系列) (项目二十)

项目要点 10-monkey-species&#xff0c;是十个种类的猴子的图像集。txt 文件读取: labels pd.read_csv( ./monkey_labels.txt , header 0)训练数据 图片数据增强: # 图片数据生成器 # 图片数据生成器 train_datagen keras.preprocessing.image.ImageDataGenerator(rescal…

docker升级后启动失败 需要指定storage driver

问题描述&#xff1a;闲来无事就在开发电脑上执行了下sudo apt-get upgrade 升级下软件, 升级后docker启动失败.使用 journalctl -xeu docker.service 查看docker执行日志&#xff1a;Mar 04 16:48:10 pop-os dockerd[39273]: time"2023-03-04T16:48:10.35187991208:00&qu…

[Java代码审计]—OFCMS

环境搭建 下载地址&#xff1a;https://gitee.com/oufu/ofcms/repository/archive/V1.1.2?formatzip 项目导入idea&#xff0c;创建数据库&#xff0c;配置下tomcat就行&#xff0c;但要注意必须tomcat>8.5&#xff0c;mysql>5.7 漏洞分析 任意文件写入 com.ofsoft…

打包可执行文件

将Python脚本打包成可执行文件的方法&#xff1a;使用pip安装PyInstaller&#xff1a;pip install pyinstaller打开终端并导航到包含Python脚本的目录。运行PyInstaller创建可执行文件&#xff1a;pyinstaller --onefile phonequeryresult.py将my_script.py替换为您的脚本名称。…

SpringBoot(tedu)——day01——环境搭建

SpringBoot(tedu)——day01——环境搭建 目录SpringBoot(tedu)——day01——环境搭建零、今日目标一、IDEA2021项目环境搭建1.1 通过 ctrl鼠标滚轮 实现字体大小缩放1.2 自动提示设置 去除大小写匹配1.3 设置参数方法自动提示1.4 设定字符集 要求都使用UTF-8编码1.5 设置自动编…

LDO的强力对手

开题前咋们先来温习下LDO的特点以及选型要点&#xff1a; 特点&#xff1a;纹波噪声小&#xff0c;响应快&#xff0c;低静态电流&#xff0c;外围电路简单&#xff1b;损耗大&#xff0c;输出电流小。常用于小电流的模拟电路供电。 选型要点&#xff1a;纹波噪声&#xff0c…

TEX:文档的布局与组织

文章目录标准的类选项指定纸张大小页面格式其他选项与某些选项相关的参数页面样式页眉页的编号fancyhdr页眉页脚宏包(重)定义fancy页面样式Using extramarks文档中页面风格切换与段落有关的距离页面格式单双列页面文档中的部分标题摘要章节附录书的结构目录表自动条目显示目录表…

XMLHttpRequest、ajax、Promise、axios、async await

1.XMLHttpRequest(xhr) 什么是xhr xhr是浏览器提供的js对象&#xff0c;通过它来向服务器来请求资源。jquery中的Ajax是基于xhr对象来封装资源的 使用xhr发起get请求 // 1. 创建 XHR 对象var xhr new XMLHttpRequest()console.log(xhr, 我是xhr);// 2. 调用 open 函数xhr.…

性能优化(2)-渲染优化

一、渲染优化 如果把浏览器呈现页面的整个过程一分为二,前面所讲的主要是浏览器为呈现页面请求所需资源的部分;本章将主要关注浏览器获取到资源后,进行渲染部分的相关优化内容。 在前面的前端页面的生命周期课程中,介绍过关键渲染路径的概念,浏览器通过这个过程对HTML,CSS, J…

<学习笔记>从零开始自学Python-之-web应用框架Django( 十二)上下文处理器

1.在模板中处理上下文处理 上下文就是一系列模板变量和相应的值。模板使用上下文填充变量&#xff0c;放到标签里显示在页面。在 Django 中&#xff0c;上下文使用 django.template 模块中的 Context 类表示。 它的构造方法接受一个可选参数&#xff1a;一个字典&#xff0…

HCIE-Cloud Computing LAB备考第二步:逐题攻破--第二题:FusionAccess-思维导图+题目=建立逻辑

第二题 FusionAccess markmap思维导图1 将上述思维导图跟下述题目结合,以题目顺序辅助记忆思维导图,有了思维大纲,做起实验,也就有逻辑线路,必定手掐把拿。 2.1 搭建FA实验环境(随机二考一) FA1、FA2两台服务器,请通过VNC登陆,按照题目要求根据服务器参数选择安装对…