我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python常用库random

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python常用库random

random是python自带的库,用来生成随机数,或随机取值等。

随机生成值

随机浮点数

random.random()

random.random():生成[0, 1)之间的随机浮点数并返回

import randomr = random.random()print(r)

执行结果如下:

0.9639100107207462

random.uniform(a, b)

random.uniform(a, b):在指定范围[a, b](或[b, a])之间,随机生成一个浮点数并返回;参数a和b的类型是浮点数

import randomr1 = random.uniform(2, 19.3)r2 = random.uniform(190, 47)r3 = random.uniform(-78, 2)print("在[2, 19.3]之间的随机数:", r1)print("在[190, 47]之间的随机数:", r2)print("在[-78, 2]之间的随机数:", r3)

执行结果如下:

在[2, 19.3]之间的随机数: 4.030505355527254在[190, 47]之间的随机数: 172.06876178208802在[-78, 2]之间的随机数: -67.73925750171473

随机整数

random.randint(a, b)

random.randint(a, b):在[a, b]之间随机生成一个整数并返回

  • 参数a和b必须是int类型的数据,且a<=b,否则参数校验报错
import randomr1 = random.randint(2, 19)r2 = random.randint(190, 190)r3 = random.randint(-78, 2)print("在[2, 19]之间的随机整数:", r1)print("在[190, 190]之间的随机整数:", r2)print("在[-78, 2]之间的随机整数:", r3)

执行结果为:

在[2, 19]之间的随机整数: 5在[190, 190]之间的随机整数: 190在[-78, 2]之间的随机整数: -41

random.randrange(start, stop, step)

random.randrange(start, stop=None, step=1):在[start, stop)之间,以start开始,间隔step,到stop(不包含)结束,随机取其中一个数值,类似于在range(start, stop, step)中随机取一个数值

  • 参数start、stop、step必须是整数(可以为float类型,但是必须是整数),否则会报错
  • step不能为0
    • 若step>0,则必须满足start
    • 若step<0,则必须满足start>stop
  • 参数可以只传一个,传一个时,默认传入的是stop的值,这个时候start为0
import randomr1 = random.randrange(2, 19)r2 = random.randrange(2, 19)r3 = random.randrange(2, 3)print("在[2, 19)之间的随机整数:  randrange(2, 19)=", r1)print("在[2, 19)之间的随机整数:  randrange(2, 19)=", r2)print("在[2, 3)之间的随机整数(只有2符合):  randrange(2, 3)=", r3)r4 = random.randrange(2, 19, 4)r5 = random.randrange(2, 6, 4)print("在[2, 19)之间的随机整数,且与2的差可被4整除:  randrange(2, 19, 4)=", r4)print("在[2, 6)之间的随机整数(一直是2):  randrange(2, 19, 4)=", r5)r6 = random.randrange(-45, 4)print("参数为负数时参考:  randrange(-45, 4)=", r6)r7 = random.randrange(12, 3, -2)print("参数step为负数时参考:  randrange(12, 3, -2)=", r7)

执行结果如下:

在[2, 19)之间的随机整数:  randrange(2, 19)= 9在[2, 19)之间的随机整数:  randrange(2, 19)= 12在[2, 3)之间的随机整数(只有2符合):  randrange(2, 3)= 2在[2, 19)之间的随机整数,且与2的差可被4整除:  randrange(2, 19, 4)= 6在[2, 6)之间的随机整数(一直是2):  randrange(2, 19, 4)= 2参数为负数时参考:  randrange(-45, 4)= -27参数step为负数时参考:  randrange(9, 3, -2)= 8

随机取值

random.choice(seq)

random.choice(seq):从序列seq中随机取一个元素
seq可以是字符串,为字符串时是随机取一个字符,如果是列表、元组等,则是随机取一个元素,也可以是序列类型的迭代器,比如range()

import randomr1 = random.choice("abcdefghijklmn1234567890")print("从字符串随机取值:", r1)r2 = random.choice([34, 16, "24w", "xiaoba", 34.21, [23, 66]])print("从列表中随机取元素:", r2)r3 = random.choice((45, "rand", "没门", 23.63))print("从集合中随机取元素:", r3)itera = range(2, 10, 2)r4 = random.choice(itera)print("参数类型是", type(itera), "从中随机取的值:", r4)

执行结果如下:

从字符串随机取值: 5从列表中随机取元素: xiaoba从集合中随机取元素: 45参数类型是  从中随机取的值: 4

random.choices()

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

  • 返回:返回一个元素个数为k的列表,元素是从population中随机获取(可重复)
  • 参数:
    • population:必须是序列形式的(字符串不行),比如列表、元组、集合、序列类型(range这种)等
    • weights:相对权重设置,序列形式传入,序列的元素个数必须与population的元素个数保持一致
    • cum_weights:累加权重,序列形式传入,序列的元素个数必须与population的元素个数保持一致
    • k:随机获取次数,即循环多少次从population中随机获取元素,默认为1

未设置权重

若未设置权重时,每个元素被随机到的概率是一样的

import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)# 默认循环data列表1次进行随机获取r1 = random.choices(data)print("random.choices(data) \n   结果为:", r1)# 设置循环data列表6次进行随机获取r2 = random.choices(data, k=6)print("\nrandom.choices(data, k=6) \n   结果为:", r2)

执行结果如下:

data的数据为: ['人', '生', '苦', '短']random.choices(data)    结果为: ['人']random.choices(data, k=6)    结果为: ['短', '苦', '短', '短', '生', '生']

设置权重

设置权重是要对population参数中的每一个元素进行设置(少一个都不行)

相对权重

weights参数是以相对权重的方式来设置权重的,比如weights=[2, 3, 1, 3]时,第一、二、三的概率分别为2/9、3/9、1/9,计算方式为:对应权重/总权重,总权重weights各个元素的和,即2+3+1+3=9

import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)r1 = random.choices(data, weights=[2, 3, 1, 3], k=6)print("设置了相对权重:", r1)

执行结果如下:

data的数据为: ['人', '生', '苦', '短']设置了相对权重: ['苦', '短', '人', '短', '生', '短']
累加权重

还可以以累加权重的方式来设置权重,累加权重的设置是在cum_weights参数中传入的。累加权重可以理解为当前元素的权重值=前一个元素权重值+自个的权重值,所以当前元素的权重值肯定是大于等于前一个元素的权重值,最后一个元素就是总权重值。

可以以相对权重去理解累加权重,比如weights=[2, 3, 1, 3]想转成累加权重的话,思路如下:

  • 第1个元素累加权重值cum_weights[0]计算:前面没有其他元素了,前一个元素的权重值可以理解为0,所以它的累加权重值是weights[0]+0,即cum_weights[0] = weights[0] = 2
  • 第2个元素累加权重值cum_weights[1]计算:前一个元素的累加权重值cum_weights[0],第二个元素自个的权重值是weights[1],所以cum_weights[1]=cum_weights[0]+weights[1]=2+3=5
  • 第3个元素累加权重值cum_weights[2]计算:前一个元素的累加权重值cum_weights[1],第二个元素自个的权重值是weights[2],所以cum_weights[2]=cum_weights[1]+weights[2]=5+1=6
  • 第4个元素累加权重值cum_weights[3]计算:前一个元素的累加权重值cum_weights[2],第二个元素自个的权重值是weights[3],所以cum_weights[3]=cum_weights[2]+weights[3]=6+3=9

最后得出weights=[2, 3, 1, 3]转成累加权重的设置是:cum_weights=[2, 5, 6, 9]

import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)r1 = random.choices(data, cum_weights=[2, 5, 6, 9], k=6)print("设置了累加权重:", r1)r2 = random.choices(data, cum_weights=[0, 1, 1, 1], k=6)print("累加权重,全部是第二个元素(生):", r2)

执行结果为:

data的数据为: ['人', '生', '苦', '短']设置了累加权重: ['生', '短', '人', '短', '苦', '短']累加权重,全部是第二个元素(生): ['生', '生', '生', '生', '生', '生']

choices()方法中一般weights和cum_weights传入其中一个参数即可,如果都传了,有些python版本是以cum_weights为准,有些Python版本会报错,所以最好就使用其中一个。

random.sample()

random.sample(population, k, *, counts=None):将population中的元素按照counts进行复制处理后,随机从处理后的序列中获取k个元素(每一个元素不重复取)并以列表的形式返回

  • population:必须是序列形式的(字符串不行),比如列表、集合、序列类型(range这种)等
  • counts:序列形式传入,序列的元素个数必须与population的元素个数保持一致
  • k:获取的元素个数,必传,且必须满足k<=population与counts处理后的元素个数,否则会报错

注意: sample()不重复取同一个索引的元素,并不表示返回的元素是不重复的,如果population和counts处理后的序列有重复的元素,则可能会返回一样的元素

import randomdata = ['人', '生', '苦', '短']print("data的数据为:", data)r1 = random.sample(data, 2)print("\n随机取2个元素:", r1)r2 = random.sample(data, 4)print("随机取4个元素(即全部):", r2)r3 = random.sample(data, 4, counts=[0, 1, 2, 1])# 如果传入了counts参数,则是对data进行处理后,在处理后的序列中随机取值# counts的处理逻辑:counts是指定了data对应索引的值的个数,# 即data[0]元素有count(0)=0个,data[1]元素有count(1)=1个,data[2]元素有count(2)=2个,data[3]元素有count(3)=1个# 所以处理后的序列是:['生', '苦', '苦', '短']# random.sample(data, 4, counts=[0, 1, 2, 1])表示从['生', '苦', '苦', '短']中取4个随机元素print("传入了counts参数:", r3)r4 = random.sample(data, 4, counts=[3, 1, 2, 1])print("传入了counts参数(2):", r4)

执行结果如下:

data的数据为: ['人', '生', '苦', '短']随机取2个元素: ['苦', '短']随机取4个元素(即全部): ['生', '短', '苦', '人']传入了counts参数: ['生', '苦', '短', '苦']传入了counts参数(2): ['人', '短', '人', '苦']

随机排序

random.shuffle()

random.shuffle(x: List, random=None):将列表x随机排序,即打乱原有的排序
random这个参数我也不知道怎么用,等我以后有需求了再去了解,就酱

import randomdata = ['人', '生', '苦', '短', "我", "用", "Python"]print("乱序前:", data)random.shuffle(data)print("乱序后:", data)

执行结果如下:

乱序前: ['人', '生', '苦', '短', '我', '用', 'Python']乱序后: ['苦', '短', '人', 'Python', '生', '我', '用']

来源地址:https://blog.csdn.net/wenxiaoba/article/details/129632560

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python常用库random

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中random库有哪些常用函数

这篇文章主要为大家展示了“Python中random库有哪些常用函数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中random库有哪些常用函数”这篇文章吧。一 random库介绍在
2023-06-29

使用python random库的常见问题有哪些

常见问题:如何生成随机整数?使用random.randint()函数可以生成指定范围内的随机整数。如何生成随机浮点数?使用random.uniform()函数可以生成指定范围内的随机浮点数。如何生成随机字符串?使用random.choice
使用python random库的常见问题有哪些
2024-02-29

Python中random库怎么用

这篇文章将为大家详细讲解有关Python中random库怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Random库主要包含返回随机数的函数,主要用于普通的随机数生成的程序,如果对随机性有特殊要求,
2023-06-15

python random库如何使用

Python的random库提供了生成随机数的函数,可以用于生成随机数、随机选择等操作。以下是一些常见的使用方法:生成随机整数:import random# 生成一个0到9之间的随机整数random_number = random.ran
python random库如何使用
2024-02-29

python random库如何使用demo

本篇内容主要讲解“python random库如何使用demo”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python random库如何使用demo”吧!python random库简单使用
2023-07-05

python常用函数random()如何使用

这篇文章主要介绍“python常用函数random()如何使用”,在日常操作中,相信很多人在python常用函数random()如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python常用函数ran
2023-07-05

python random库的简单使用demo

这篇文章主要为大家介绍了python random库的简单使用demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-24

python常用函数random()函数详解

这篇文章主要介绍了python常用函数random()函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-22

Python 中random 库的详细使用

Random库主要包含返回随机数的函数,主要用于普通的随机数生成的程序,如果对随机性有特殊要求,比如加密等,可以用函数os.urandom()或者random模块内部的SystemRandom类,这些可以让数据接近真正的随机性。 前言为啥突
2022-06-02

常用模块random,time,os,s

取随机数的模块#导入random模块import random#取随机小数:r = random.random() #取大于零且小于一之间的小数print(r) #0.7028485217376959r = random.un
2023-01-30

怎么在python中安装PyInstaller和random库

本篇文章给大家分享的是有关怎么在python中安装PyInstaller和random库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python主要用来做什么Python主要
2023-06-06

Python中random模块怎么用

这篇文章给大家分享的是有关Python中random模块怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.随机取小数:import randomprint(random.runiform(a,b)) #a-
2023-06-22

python 常用类库

On this page... (hide)1.  基本安装2.  Python文档2.1 推荐资源站点2.2  其他参考资料2.3  代码示例3.  常用工具3.1  Python IDE3.2  内置类库使用参考3.3  常用第三方类库
2023-01-31

常用的Python库

Tkinter———— Python默认的图形界面接口。  Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的
2023-01-31

python 常用类库!

转载自:http://fire01312.iteye.com/blog/703339On this page... (hide)1.  基本安装2.  Python文档2.1 推荐资源站点2.2  其他参考资料2.3  代码示例3.  常用
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录