Python学习-----随机数篇

这篇具有很好参考价值的文章主要介绍了Python学习-----随机数篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 一.随机数字

1.随机整数

(1)包含上下限(闭区间)

(2)包含下限,不包含上限(下闭上开)

(3)设置步长(间隔)

randint与randrange区别

2.随机浮点数

(1)0~1之间的浮点数

(2)随机浮点数[a,b]

二.有序序列随机值

1.随机获取单个数据结果

 2.随机获取多个数据结果

(1)一次取一个,多次取(抛硬币法则,二项分布)

 (2)一次获取多个(离散型分布)

choices与sample区别

3.随机打乱序列的顺序(是可变序列)

三.随机数种子


 一.随机数字

需要导入的库 

import random

1.随机整数

(1)包含上下限(闭区间)

获取一个下限为a,上限为b的随机整数[a,b]

random.randint(a,b)

import random
#示例
a=random.randint(89,88)
print(a)

注意事项:下限不可以大于上限,否则会报错

(2)包含下限,不包含上限(下闭上开)

获取一个下限闭区间为a,上限开区间为b的随机整数[a,b)

random.randrange(a,b)

#示例
import random
a=random.randrange(12,55)
print(a)

(3)设置步长(间隔)

获取一个下限闭区间为a,上限开区间为b的随机整数[a,b),同时步长为step

random.randrange(a,b,step)

举个例子:获取0~100之间的随机数,同时步长为2, 可以random.randrange(0,100,2),那么输出结果应该是0,2,4,5,6,8,10,12………98,注意100是取不到的哦,是开区间

#示例
import random
a=random.randrange(12,99,2)
print(a)

randint与randrange区别

randint两边是闭区间;randrange左边是闭区间,右边是开区间

randint不可以设置步长;randrange可以设置步长

2.随机浮点数

(1)0~1之间的浮点数

获取一个0~1之间的浮点数

random.random()

import random
a=random.random()
print(a)

(2)随机浮点数[a,b]

获取一个下限为a,上限为b的浮点数(都是闭区间)

random.uniform(a, b)

 random.uniform(a, b)是允许下限大于上限的,不会报错,两边取闭区间。

import random
a=random.uniform(12,33) #获取一个12~33之间的浮点数
a=random.uniform(33,12) #获取一个12~33之间的浮点数
print(a)

二.有序序列随机值

需要导入的库 

import random

1.随机获取单个数据结果

在一个有序序列里面,获取一个其中单个数据(有序序列包括字符串、列表、元组等等)

random.choice(有序序列),例如:random.choice([1,'wad',5,8])

获取的数据类型是根据数据实际类型去定义的,比如:获取到了 8 那么就是int类型;获取到了'wad' 那就是str类型

import random
print(random.choice('abcdef'))   #字符串
print(random.choice((12,'kk','蔡徐坤','只因')))  #元组
print(random.choice(['李白','韩信','孙悟空','百里玄策'])) #列表
print(random.choice([1,'wad',5,8]))  #列表

输出结果:

python 随机数,Python学习,学习,python,开发语言

 2.随机获取多个数据结果

(1)一次取一个,多次取(抛硬币法则,二项分布)

获取一个有序序列中多个数据,而且每次取其中一个数据,获取多次random.choices(li,weights,k)

注释:其中 li是有序序列名字,weights 是表示概率(如果不设置就默认每个数据被取到的概率相同),k 是表示获取次数

这个函数获取的所有数据是放到一个集合的,都是列表类型(除元组外),而且数据结果可能重复相等

示例1:

如果使用 random.choices 时没有设置weights和k的值,那么默认获取一个数据,而且每个数据被获取的概率都是相等的

import random
li=[False,77,'蔡徐坤',3.1415,'IKUN']
print(random.choices(li))
print(type(random.choices(li)))

python 随机数,Python学习,学习,python,开发语言

 示例2:

如果设置了获取次数k的值,没有设置weights的值,那就是每次获取一个数据,次数为k,而且每个数据的被获取概率都相等(抛硬币法则) 

import random
li=[False,77,'蔡徐坤',3.1415,'IKUN']
print(random.choices(li,k=2))
print(type(random.choices(li,k=2)))

python 随机数,Python学习,学习,python,开发语言

 示例3:

自定义数据被获取概率的值weights和获取次数的值

import random
li=[False,77,'蔡徐坤',3.1415,'IKUN']
#这里定义这5个数据被获取的概率是8:1:2:3:2 ,获取次数为3
print(random.choices(li,weights=[8,1,2,3,2],k=3))

python 随机数,Python学习,学习,python,开发语言

 示例4:

即使li 是字符串(str),但是获取的结果还是列表类型;但是如果是元组类型的话,那么获取的结果就是元组类型(tuple)了

import random
li='12345'
gg=(520,'蔡徐坤',3.3,True,888)
print(type(gg))
print(random.choices(li,weights=[8,1,2,3,2],k=2))
print(type(random.choices(li,weights=[8,1,2,3,2],k=2)))

python 随机数,Python学习,学习,python,开发语言

 (2)一次获取多个(离散型分布)

一次性获取一个有序序列中多个数据

random.sample(li,k)

注释:其中li是列表名字,k是获取个数

这个函数获取的所有数据不存在重复的情况,是直接一次性获取k个数据(离散型分布),当然,结果类型也都是列表类型

import random
tupl=('1123',55,3.14,'好兆头')
li=[520,'蔡徐坤',3.3,True,888]
a=random.sample(li,k=3) #一次性获取3个数据
b=random.sample(tupl,k=2)
print(a,type(a))
print(b,type(b))

python 随机数,Python学习,学习,python,开发语言

这里我们可以看到,用sample随机获取列表或者元组的数据,结果类型都是列表类型 

 注意事项:这个函数是一次性选择多个的,所以序列里面的数据格式必须大于选择个数,否则就会报错

choices与sample区别

1.choices是每次随机选择一个数据,可以选择多次,数据可能出现重复;而sample是一次性选择多个数据,数据不可能重复。

2.choices是可以设置数据被选择的概率的,而sample是不可以的

3.choices的数据个数是可以小于选择次数的,而sample的数据格式是不可以小于选择个数的

4.choices随机获取元组的数据,得到的结果数据类型还是元组类型(tuple),而sample得到的结果都是列表类型(list)

3.随机打乱序列的顺序(是可变序列)

已知一个列表,我想打乱这个列表的排列顺序,然后重新输出结果

random.shuffle(列表名)
注意事项:被打乱的序列必须是可变的,比如列表,如果是元组的话就会报错,因为元组是不可修改的

 这个函数是直接返回已经被打乱好的列表,然后覆盖到原来的列表,所以我们直接输出原来的列表名字就行了

 示例:

import random
li=['中国','美国','英国','日本','法国','俄罗斯']
random.shuffle(li)
print(li)

python 随机数,Python学习,学习,python,开发语言

三.随机数种子

 需要导入的库 

import random

之前在学习C语言的时候我们接触过了随机数种子,这个种子是根据此时此刻的时间来产生与之相对应的随机数,因为时间是一直在向前走的,所以每一次产生的随机数都是不一样的,而在Python中也有随机数种子,但是与C语言不同的是,在Python每次产生的随机数本身就是随着时间变化,而产生不同的随机数,所以Python的随机数种子跟C语言的不一样,实际上是一种定时间的功能,设立随机数种子来保证每次产生的随机数都是具有可知性的

random.seed(时间数)

不同的时间数,产生的随机数是不一样的,但是如果是同一个时间数,那么产生的数据是一样的

 示例:
 

import random
random.seed(12)
li=('哈哈',56,3.221,False,'250')
a=random.choice(li)
print(a,type(a))

python 随机数,Python学习,学习,python,开发语言 

 实际上每次输出的结果都是一样的,如果我们把随机数种子的时间数改为其他的话,那么产生的随机数据就不一样了

 

小伙伴们,学会了吗?是不是很有意思呢!

送一张壁纸给大家 

python 随机数,Python学习,学习,python,开发语言文章来源地址https://www.toymoban.com/news/detail-808638.html

到了这里,关于Python学习-----随机数篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python生成随机数的一个标准库-random

    Random库Python中用于生成随机数的一个标准库。计算机没有办法产生真正的随机数,但它可以产生伪随机数。 伪随机数是计算机按照一定的运算规则产生的一些数据,只不过这些数据表现为随机数的形式。计算机中采用梅森旋转算法生成为随机序列,序列中的每一个元素就是伪

    2023年04月26日
    浏览(47)
  • 【Python入门第五十三天】Python丨NumPy 中的随机数

    随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。 计算机在程序上工作,程序是权威的指令集。因此,这意味着必须有某种算法来生成随机数。 如果存在生成随机数的程序,则可以预测它,因此它就不是真正的随机数。 通过生成算法生成的随机

    2023年04月25日
    浏览(39)
  • Python random模块(获取随机数)常用方法和使用例子

    嗨喽,大家好呀~这里是爱看美女的茜茜呐 random.random random.random()用于生成一个0到1的随机符点数: 0 = n 1.0 random.uniform random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。 如果a b,则生成的随机数n: a = n = b。如果 a b, 则 b = n = a

    2024年01月24日
    浏览(66)
  • 【Python爬虫与数据分析】时间、日期、随机数标准库

    目录 一、模块化概述 二、time库 1. 时间获取 2. 时间格式化 3. 程序计时 三、datetime库 1. datetime.datetime类 2. datetime.timedelta类 四、random库 1. 基本随机函数 2. 扩展随机函数 3. 随机时间的生成 Python程序由模块组成,一个模块对应一个 .py 源文件。 模块分为 标准库模块 和 自定义模

    2024年02月13日
    浏览(57)
  • 【Python爬虫与数据分析】爬虫常用标准库(时间、随机数)

    目录 一、模块化概述 二、time库 1. 时间获取 2. 时间格式化 3. 程序计时 三、datetime库 1. datetime.datetime类 2. datetime.timedelta类 四、random库 1. 基本随机函数 2. 扩展随机函数 3. 随机时间的生成 Python程序由模块组成,一个模块对应一个 .py 源文件。 模块分为 标准库模块 和 自定义模

    2024年02月15日
    浏览(47)
  • 【Python入门知识】NumPy 中的随机数及ufuncs函数

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 什么是随机数? 随机数并不意味着每次都有不同的数字。随机意味着无法在逻辑上预测的事物。 伪随机和真随机 计算机在程序上工作,程序是权威的指令集。 因此,这意味着必须有某种算法来生成随机数。 如果存在生成随机数的程

    2024年02月03日
    浏览(98)
  • 生成随机数——C语言

    在C语言中,可以使用标准库函数 rand() 来生成随机数。需要注意的是, rand() 函数生成的是伪随机数,具体的随机序列取决于种子(seed)的值。 下面是一个简单的示例代码,展示如何在C语言中生成随机数: 在上述代码中,首先包含了 stdio.h 、 stdlib.h 和 time.h 头文件来使用相

    2024年02月12日
    浏览(55)
  • 明明的随机数【C语言】

    明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。 数据范围: 1≤ n ≤1000 ,输入的数字大小满足 1≤ val ≤500 第一行先输入随机整数的个数 N 。 接下来的

    2024年01月16日
    浏览(37)
  • C语言中生成随机数的方法

      生成随机数是指按照一定的规律,产生一些看似无规律的数字序列。在计算机中,通常使用随机数生成器来生成随机数。随机数生成器可以分为真随机数生成器和伪随机数生成器两种。真随机数生成器是利用物理现象产生的随机事件(如放射性衰变)来生成随机数。而伪

    2024年02月05日
    浏览(54)
  • 【C语言】实现猜数字游戏——随机数

    🚩 纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C语言 该篇将对 选择与循环语句 进行运用,实现 猜数字游戏 。 需求:游戏后可以选择再次进行游戏,也可以选择退出。 ⭐️ 大概实现思路: 基本框架: 选择是否玩游戏 循环部分用do while循环来实现。

    2024年02月05日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包