首页 > Python资料 博客日记
Python的random(随机数)模块的使用
2024-08-10 03:00:05Python资料围观62次
Python资料网推荐Python的random(随机数)模块的使用这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣
文章目录
Python的random
模块提供了各种用于生成随机数的函数。这个模块在需要随机选择元素、打乱序列、模拟概率分布等场景时非常有用。下面我将详细介绍random
模块的一些主要功能、用法和常见用法,并给出相应的示例代码。
主要功能
- 基本随机数生成:生成指定范围内的随机整数、随机浮点数等。
- 随机选择:从序列中随机选择一个或多个元素。
- 随机打乱:随机打乱序列中的元素顺序。
- 随机变量:模拟常见的随机变量分布,如正态分布、指数分布等。
用法
以下是一些常用的函数及其用法:
random()
:生成一个[0.0, 1.0)之间的随机浮点数。randint(a, b)
:生成一个[a, b]之间的随机整数。randrange([start,] stop[, step])
:生成一个[start, stop)之间以step为步长的随机整数。choice(seq)
:从非空序列seq中随机选择一个元素。shuffle(list)
:将list中的元素随机打乱。sample(population, k)
:从population中随机选择k个不重复的元素。uniform(a, b)
:生成一个[a, b]之间的随机浮点数。normalvariate(mu, sigma)
:生成一个符合正态分布的随机数,mu是均值,sigma是标准差。
示例代码
生成随机整数和浮点数
import random
# 生成0到10之间的随机整数(包括0和10)
print(random.randint(0, 10))
# 生成1到10之间(不包括10)的随机整数
print(random.randrange(1, 10))
# 生成0到1之间的随机浮点数(不包括1)
print(random.random())
# 生成1到3之间的随机浮点数
print(random.uniform(1, 3))
运行结果:
从序列中随机选择元素
# 从列表中随机选择一个元素
my_list = [1, 2, 3, 4, 5]
print(random.choice(my_list))
# 从列表中随机选择3个不重复的元素
print(random.sample(my_list, 3))
运行结果:
随机打乱序列
# 打乱列表中的元素顺序
random.shuffle(my_list)
print(my_list)
运行结果:
模拟随机变量分布
正态分布
# 生成一个符合正态分布的随机数,均值为0,标准差为1
print(random.normalvariate(0, 1))
运行结果:
指数分布
虽然random
模块没有直接提供指数分布的函数,但你可以使用expovariate
函数从random
的expovariate
模块中导入:
from random import expovariate
# 生成一个符合指数分布的随机数,λ(lambda)是分布率参数(平均到达率是λ的倒数)
print(expovariate(1.0)) # λ=1.0
但请注意,expovariate
是直接在random
模块中定义的,不需要额外导入。
其他分布
对于其他更复杂的分布,你可能需要使用numpy
库,它提供了更多的统计函数和随机变量生成器。
使用random.seed()
设置随机种子
设置随机种子可以确保每次运行代码时生成的随机数序列是相同的,这在需要可重复实验的情况下很有用。
import random
# 设置随机种子
random.seed(1)
# 现在,每次使用相同的种子调用random函数,都会得到相同的结果
print(random.randint(0, 10))
# 假设输出为5(实际输出可能因版本而异)
print(random.randint(0, 10))
# 假设输出为某个特定数字(与上次不同,但因为是同一种子,所以可重复)
运行结果:
使用random
模块进行简单的随机密码生成
import random
import string
def generate_password(length=10):
# 选择字母和数字的集合
characters = string.ascii_letters + string.digits
# 使用random.choices函数(注意不是choice,它允许重复)
# 并指定k=length以生成指定长度的密码
return ''.join(random.choices(characters, k=length))
print(generate_password(15)) # 生成一个15位的随机密码
运行结果:
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj