python从入门到精通8:数字随机数

在Python中,随机数的生成和处理是编程中常见的需求之一。Python的标准库提供了random模块,该模块包含了生成各种类型随机数的函数。本教程将深入探讨Python中random模块的使用,包括生成随机数、随机选择、随机打乱顺序等高级用法。

1. 导入random模块

首先,我们需要导入random模块来使用其提供的函数。

import random

2. 生成随机整数

random模块中的randint()函数用于生成指定范围内的随机整数(包括两端)。

# 生成1到10之间的随机整数
random_int = random.randint(1, 10)
print(random_int)

randrange()函数类似于range()函数,但它返回一个随机整数。

# 生成0到10之间的随机整数(不包括10)
random_range = random.randrange(10)
print(random_range)

3. 生成随机浮点数

random()函数用于生成[0.0, 1.0)范围内的随机浮点数。

# 生成随机浮点数
random_float = random.random()
print(random_float)

如果你想生成指定范围内的随机浮点数,可以使用uniform()函数。

# 生成1.0到5.0之间的随机浮点数
random_uniform = random.uniform(1.0, 5.0)
print(random_uniform)

4. 从序列中随机选择元素

choice()函数用于从非空序列(如列表、元组、字符串)中随机选择一个元素。

# 从列表中随机选择一个元素
my_list = [1, 2, 3, 4, 5]
random_choice = random.choice(my_list)
print(random_choice)

choices()函数用于从序列中随机选择多个元素,可以指定每个元素被选中的权重。

# 从列表中随机选择多个元素,可以指定权重
my_list = ['apple', 'banana', 'cherry']
weights = [1, 3, 1]  # banana被选中的概率是其他水果的三倍
random_choices = random.choices(my_list, weights=weights, k=3)
print(random_choices)

5. 随机打乱序列顺序

shuffle()函数用于就地(in-place)打乱列表元素的顺序。

# 打乱列表元素的顺序
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)

sample()函数用于从列表中随机选择指定数量的不重复元素。

# 从列表中随机选择3个不重复的元素
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_sample = random.sample(my_list, 3)
print(random_sample)

6. 种子(Seed)

随机数生成器是伪随机数生成器,这意味着它们是基于算法的,并且如果给定了相同的种子值,将产生相同的随机数序列。seed()函数用于设置随机数生成器的种子。

# 设置随机数生成器的种子
random.seed(1)
random_int1 = random.randint(1, 10)
print(random_int1)  # 假设输出为5# 再次设置相同的种子
random.seed(1)
random_int2 = random.randint(1, 10)
print(random_int2)  # 输出应该与random_int1相同,因为种子相同

7. 使用场景

  • 模拟和测试:在编写需要模拟随机事件的程序时,随机数生成器非常有用。例如,模拟赌博游戏、随机事件触发等。
  • 密码学:在密码学中,随机数用于生成密钥、初始化向量等,以确保加密过程的安全性。
  • 游戏开发:在游戏中,随机数用于生成随机地图、敌人位置、道具掉落等,以增加游戏的趣味性和挑战性。
  • 人工智能和机器学习:在机器学习和深度学习中,随机数用于初始化权重、选择训练样本等,以确保模型的泛化能力。

8. 注意事项

  • 随机数生成器不是真正的随机数生成器,而是伪随机数生成器。

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

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

相关文章

大数据存储技术笔记

目录 大数据的特性 HDFS 读流程的基本步骤 HDFS 写流程的基本步骤 Mapreduce的执行过程 MapReduce 中 combiner 作用 hadoop 调度器及其工作方法 Hive 中内部表与外部表区别(创建删除角度) Hadoop 的 2 个主要组件及其功能 Hadoop MapReduce 的工作流程 正常工作的 ha…

解决Ubuntu修改完root密码还是不能登录

ubuntu使用Xftp、Xshell连接时,ssh服务器拒绝访问。一直显示输入密码,这是由于sshd的设置不允许root用户使用密码进行远程登录。 解决办法:修改sshd_config配置文件。如果不存在,检查是否安装了openssh openssh安装命令&#xf…

Qt C++中使用QFutureWatcher 等待多个异步任务 执行完成

在Qt开发中,处理耗时任务而不会阻塞主线程(通常负责图形用户界面的更新)是非常重要的。Qt提供了多种机制来实现这一点,其中QFutureWatcher结合QtConcurrent是处理并等待多个异步任务完成的一种强大方法。下面我们将详细解析一段代码,该代码演示了如何使用QFutureWatcher来…

AWS Lambda + Flask 应用示例

前言 AWS Lambda 本身是一个以事件驱动的 Serverless 服务, 最简单的应用就是在入口函数中对接收到的事件/请求进行处理并返回响应. 对于像 Flask 这样的 Web 框架, 并不能直接在 Lambda 上提供服务, 不过我们可以借助 AWS Lambda Web Adapter 实现一个基于 Flask 框架的 Web …

IDEA、PyCharm等基于IntelliJ平台的IDE汉化方式

PyCharm 或者 IDEA 等编辑器是比较常用的,默认是英文界面,有些同学用着不方便,想要汉化版本的,但官方没有这个设置项,不过可以通过插件的方式进行设置。 方式1:插件安装 1、打开设置 File->Settings&a…

python基础大全【13万字】

python基础大全【13万字】 Day011、Python概述2、Python解释器和pycharmIDE工具3、Python中的注释4、变量5、标识符的命名规范 ★6、变量的使用7、Python中的数据类型 ★8、Python中的bug和调试9、字符串的格式化及输出 ★10、转译字符 day021、转译字符2、f-string ★3、数据类…

iptables(4)规则匹配条件

简介 前面我们已经介绍了iptables的基本原理,表、链,数据包处理流程。如何查询各种表的信息。还有基本的增、删、改、保存的基础操作。 经过前文介绍,我们已经能够熟练的管理规则了,但是我们只使用过一种匹配条件,就是将”源地址”作为匹配条件。那么这篇文章中,我们就来…

【Java】已解决java.net.MalformedURLException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.net.MalformedURLException异常 在Java的网络编程中,java.net.MalformedURLException是一个常见的异常,它通常表明URL(统一资源定位符…

「五度易链」企业大数据API接口开放平台上线啦!

“五度易链”企业大数据API接口开放平台现已正式上线,旨在为广大企业、开发者及个人提供标准、安全、高效、便捷的企业数据API接口服务,帮您更轻松地构建应用、扩展功能,并基于用户应用场景提供专属接口定制服务,助力企业提升研发…

数据分析必备:一步步教你如何用matplotlib做数据可视化(8)

1、Matplotlib 条形图 条形图或条状图是一种图表或图形,它显示带有矩形条的分类数据,其高度或长度与它们所代表的值成比例。可以垂直或水平绘制条形。 条形图显示了离散类别之间的比较。图表的一个轴显示要比较的特定类别,另一个轴表示测量值…

Stable Diffusion WebUI 使用ControlNet:IP-Adapter保持生图的角色一致性

IP-Adapter-FaceID可以在保持人脸一致的条件下生成各种风格的图像。 下载 IP Adapter 需要的 Face ID 模型和 Lora 下载地址:https://huggingface.co/h94/IP-Adapter-FaceID/ 下载 ip-adapter-faceid-plusv2_sd15.bin 和 ip-adapter-faceid-plusv2_sd15_lora.saf…

【MySQL进阶之路 | 高级篇】常见索引(聚簇索引, 二级索引)

1. 常见索引概念 索引按照物理实现方式,可以分为两种,聚簇索引和非聚簇索引.我们也把非聚簇索引称为二级索引或辅助索引. (1). 聚簇索引 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(所有的数据记录都存储在了叶子节点)&#…

js如何使得四舍五入的百分比之和为100%

在JavaScript中,如果你想要确保一组四舍五入后的百分比之和严格等于100%,那么你不能直接对每个百分比进行四舍五入,因为四舍五入会引入误差。但是,你可以采用一种策略,即先对所有的百分比进行常规的四舍五入&#xff0…

C# WPF入门学习主线篇(二十九)—— 绑定到对象和集合

C# WPF入门学习主线篇(二十九)—— 绑定到对象和集合 在WPF中,数据绑定是开发动态和交互性用户界面的核心技术。通过数据绑定,我们可以轻松地将UI控件与后台的数据源连接起来,实现数据的自动更新和显示。在本篇文章中&…

深度学习跨平台环境问题

在深度学习过程中,不可避免的是在win上跑不通的代码在ubuntu中就可以跑通,这里建议使用autodl。 首先在ubuntu上导出环境(如果你的环境是base的话使用base) conda env export --name base --no-builds > environment.yaml 这…

wordpress 导航主题 有批量从源码导入功能

下载地址:wordpress导航主题 可以批量导入

ardupilot开发 --- Jetson Orin Nano 后篇

我拼命加速,但贫穷始终快我一步 0~1920. visp-d455:基于IBVS的Pixhawk无人机视觉伺服20.1 基础关于连接、通讯、UDP forward服务:一些相关的、有用的例程Linux C程序的gdb断点调试搭建仿真解决【testPixhawkDroneTakeoff.cpp例程能解锁但起飞…

物联网LORA技术-SX1276/SX1277/SX1278-137MHz至1020MHz低功耗远距离收发器

概述: SX1276/SX1277/SX1278 收发器主要采用LORATM 远程调制解调器,用于超长距离扩频通信,抗干扰性强,能够最大限度降低电流消耗。借助升特的LoRaTM 专利调制技术,SX1276/SX1277/SX1278 采用低成本的晶体和物料即可获得…

SHELL脚本学习(十)初识 sed编辑器

一、sed 编辑器 sed 编辑器被称作流编辑器,根据命令来处理数据流中的数据。 这些数据要么从命令行输入,要么保存在命令文本文件中。 sed编辑器可以执行下列操作: 从输入中读取一行数据根据所提供的命令匹配数据按照命令修改数据流中的数据将…

WIFI6E中的MESH组网功能

什么是WIFI6E和MESH组网? WIFI 6E 是扩展到6GHz 频段的WIFI 6无线通信技术,而“WIFI 6E”中的“6”是指WIFI技术的“第6代”,“E”则是指使用新频段的标准的最新扩展。WIFI 6E通过增加6GHz频段,提供更高的带宽、更低的延迟和更大…