【Python】学习笔记12

简介: 【Python】学习笔记12

【Python】学习笔记12

 random是使用随机数的Python标准库,random库和之前说过的turtle库,time库一样,它是随着解释器而自带的库,不需要安装,直接使用import。(import  random

       从哲学的角度讲,我们抛出一枚硬币,正面与反面是随机的。但是计算机呢,不可能产生随机值,也可以理解为随机数是在各种复杂条件下产生的确定值,只不过这些复杂条件我们不能充分理解,或者超越我们的理解能力。


       但是,计算机可以产生伪随机数。

伪随机数:采用梅森旋转算法生成的伪随机序列中的元素。

       不过这些数据表现为随机数的形式,random库主要用于生成这样的随机数。random库包括两类函数,常用共8个。

基本随机函数

seed()  、random()

扩展随机函数

randint()、getrandbits()、uniform()

       randrange()、choice()、shuffle()

       简单来说最基本的就是random()后面的所有函数都是基于这个函数扩展而来的。

       Python中的随机数使用随机数种子来产生:

随机数种子  >>>    梅森旋转算法  >>>  随机序列

比如种子10,

采用旋转算法之后,

会生成随机序列,

0.673267498716572436

0.457198436584519843

0.821094832178435987

0.387312498327983599

0.347891350594593939

。。。

这个随机序列是根据种子来唯一确定的,

随机序列中的一个数,就是随机数。

只要种子相同,产生的随机序列,无论每一个数,还有数之间的关系都是相同的。、


random库提供了两个基本的函数

seed()


1、seed=(a=NONE)   初始化给定的随机数种子,默认当前的系统时间。  

2、>>>random.seed(10)  

产生种子10对应的序列

PS:如果不选定seed时,将当前系统时间作为种子。

random()


生成一个[0.0 ,1.0]间的随机小数。

image.png

       如果不使用种子,他会使用当前的系统时间,这个时间呢,精确到微秒级,这个时间是我们很难再现的,所以后面产生的结果就是完全随机,是我们不可再现的。

       如果我们想再现随机过程,就使用种子,如果只关心程序的随机结果,就不设定种子。

image.png

       调用一次相同的种子,产生的随机数列也相同,以seed(10)为例,一定会产生如图所示的文字。


random库提供了六个常用的随机数扩展函数。

randint(a,b)生成一个[a,b]之间的整数

>>>random,randint(10,100)             
生成64

randrange(m,n,k)生成一个[m,n)之间以k为步长的随机整数

>>>random.randrange(10,100,10)        生成80

getrandbits(k)生成一个k比特长的随机函数

>>>random.getrandbits(16)              
生成37885

uniform(a,b)生成一个[a,b]之间的随机小数

>>>random.uniform(10,100)             
生成13.096321648808136

choice(seq)从序列seq中随机选取一个元素

>>>random.choice([1,2,3,4,5,6,7])        生成5

shuffle(seq)将序列seq中的元素随机排列,返回打乱后的序列

>>>s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s)    
生成[3,5,8,9,6,1,2,7,4]


需要掌握的能力

1 我们能利用随机种子产生确定的伪随机数;

2 能够产生随机整数   ;

3 能对序列进行随机操作;

tips:

1、三行代码放在一行中  用分号分割;

2、在代码编写中,每一行尽量独立写一行,这样可读性更好。

目录
相关文章
|
5月前
|
存储 C语言 Python
【Python】学习笔记day3
【Python】学习笔记day3
54 1
|
4月前
|
BI 测试技术 索引
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)-1
Python学习笔记之NumPy模块——超详细(安装、数组创建、正态分布、索引和切片、数组的复制、维度修改、拼接、分割...)
|
17天前
|
存储 Python 容器
Python编程基础第二天学习笔记
Python编程的第二天学习是建立在基础概念上的深化和扩展,强调了基本语法、数据类型、控制结构和函数的重要性。通过实践这些概念,可以增强对Python编程语言的理解,并为后续的高级学习打下坚实的基础。继续实践并逐渐探索更复杂的编程任务将有助于巩固和扩展这些基础知识。
36 7
|
5月前
|
分布式计算 Python
Python函数式编程学习笔记
高阶函数是能接收另一个函数作为参数的函数,如Python的map()、reduce()和filter()。map()将传入的函数应用到序列每个元素并返回迭代器,如将整数列表转换为字符串列表。reduce()对序列进行累积计算,例如求和。filter()根据给定函数返回的真值保留或丢弃序列元素,常用于筛选。sorted()函数支持自定义排序,如按绝对值或ASCII值排序。此外,还包括返回函数、匿名函数(lambda)、装饰器(用于动态增强函数功能)和偏函数(partial),用于固定函数部分参数,简化调用。
46 1
|
2月前
|
存储 索引 Python
Python学习笔记----列表、元组和字典的基础操作
这篇文章是一份Python学习笔记,涵盖了列表、元组和字典的基础操作,包括它们的创建、修改、删除、内置函数和方法等。
Python学习笔记----列表、元组和字典的基础操作
|
2月前
|
Python
Python学习笔记---函数
这篇文章是一份Python函数学习的笔记,涵盖了使用函数的优势、内置函数的调用、自定义函数的定义、函数参数的不同类型(必须参数、关键字参数、默认参数、可变参数)、有返回值和无返回值的函数、形参和实参、变量作用域、返回函数、递归函数、匿名函数、偏函数以及输入和输出函数等多个函数相关的主题。
|
2月前
|
索引 Python
Python学习笔记----操作字符串
这篇文章是一份Python字符串操作的学习笔记,涵盖了字符串相加、序列相加、字符串长度和字符的查找、统计、分割、连接、替换、去除空白、大小写转换以及判断字符串是否由字母和数字组成等常用方法。
Python学习笔记----操作字符串
|
2月前
|
Python
python学习笔记---流程控制
这篇文章详细介绍了Python中的流程控制,包括选择结构(if、if-else语句、嵌套if语句)和循环语句(while循环、for循环以及for循环与range()函数的使用),以及如何在循环中使用break和continue语句。
python学习笔记---流程控制
|
2月前
|
索引 Python
python学习笔记----必备知识
这篇文章是一份全面的Python学习笔记,涵盖了Python的必备知识,包括语法特点、流程控制、数据类型、运算符、输入输出方法,以及对序列、字符串、正则表达式、函数、面向对象程序设计、模块和包的介绍。
python学习笔记----必备知识
|
5月前
|
前端开发 安全 JavaScript
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
141 0
下一篇
无影云桌面