Python之random学习
Posted 000cxl000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之random学习相关的知识,希望对你有一定的参考价值。
random库是用于产生并运用随机数的标准库。
从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,计算机不能产生真正的随机数,只能产生伪随机数
一、调用语句:
import random # python中的随机数生成模块
二、基本随机数函数
(一)seed(a):设置初始化随机种子,可重现相同随机数序列,与其他函数配套使用
使用:
random.seed(a)
设置random包的seed值,该值对于生成随机数至为重要,a取整数或浮点数不设置时默认以系统时间为种子
(二)random():下述
二、扩展随机数函数
函数功能主要分为:
(一)获取随机小数
- random():生成一个[0.0,1.0)之间的随机小数
In:
import random x = random.random() print(x)
Out:
>>0.8268016072790678
2.uniform(a,b):生成一个[a,b]之间的随机小数
In:
import random x = random.uniform(10, 20) print(x)
Out:
>>17.744508676671582
(二)获取随机整数
- randint(a,b):生成一个[a,b](b>a)之间的随机整数(仅按域的要求获得随机整数)
In:
import random x = random.randint(10, 20) print(x)
Out:
>>12
2.getrandbits(k):生成一个k比特长度的随机整数 (按存储大小的要求获得随机整数)
In:
import random x = random.getrandbits(3) #随机生成二进制长度为3位的十进制整数(0-7) print(x)
Out:
>>5
3.randrange(start,stop[,step]):生成一个[start,stop)之间以step为步数的随机整数 (按域、步长的要求获得随机整数)
In:
import random x = random.randrange(10, 100, 2) #相当于从序列[10, 12, ..., 96, 98]中随机返回一个数。 print(x)
Out:
>>62
(三)对序列类型进行随机操作
- choice(seq):从序列类型seq(如字符串,列表,元组)中随机返回一个元素(用于序列抽1签)
In:
import random x = random.choice(["i", "love", "Math"]) print(x)
Out:
>>Math
2.shuffle(seq):将序列类型seq中元素随机排序,返回打乱后序列,seq被改变(用于序列洗牌)
In:
import random x = [‘python‘, ‘is‘, ‘powerful‘, ‘simple‘, ‘.‘] random.shuffle(x) print(x)#会修改原有序列
Out:
>>[‘is‘, ‘powerful‘, ‘simple‘, ‘.‘, ‘python‘]
3.sample(pop,k):从序列类型pop中选取k个元素,以列表类型返回(用于序列抽K签,存入列表)
In:
import random list = [1, 2, 3, 4, 5, 6, 7] x = random.sample(list, 5) # 从list中随机选取5个元素,生成一个新的list并返回 print("改变后序列:",x) print("原序列:",list)#原序列不改变
Out:
>>改变后序列: [2, 1, 4, 5, 7]
原序列: [1, 2, 3, 4, 5, 6, 7]
最后:random库找随机数在一些算法中使用最多,譬如遗传算法找遗传因子,找最优路径时先生成随机路径再优化等等。而且random库并不难学,只要熟悉了函数,就能够很快上手帮助自己解决问题的
以上是关于Python之random学习的主要内容,如果未能解决你的问题,请参考以下文章
Python学习笔记17:标准库之数学相关(math包,random包)