前言:random库是python的标准库之一,在程序设计时用于生成随机数。random库在使用时,也需要用import保留字对其进行引用(import random),若没有则会报错。Random库的引用方式与turtle库的引用方式一样。random库包含两大类函数,基础随机函数和扩展随机函数,接下来就一一介绍这两函数的使用方式。
一.基础随机函数
函数 | 说明 |
random() | 生成[0.0,1.0]之前的小数 |
seed() | 初始化随机种子,默认值为当前系统时间 |
random()函数代码如下:
>>>import random
>>>random.random()
>>>0.9412784270409345
>>>random.random()
>>>0.040522180747599834
seed()函数:对后续产生的随机数设置种子a,使用随机数的种子的优点是可以复现有技术的程序。当seed()函数的参数a等于
None时,每次生成的随机数是不一样的;seed()函数的参数a不为None时,每次生成的随机数是一样的,并且选择不同的参数a时,所生成的随机数序列也不一样。代码如下:
>>>from random import *
>>>#设置随机数种子
>>>seed(10)
>>>random()
0.5714025946899135
>>>random()
0.4288890546751146
>>>#再次设置相同的种子,则后续产生的随机数相同
>>>seed(10)
>>>random()
0.5714025946899135
>>>random()
0.4288890546751146
>>>#再次设置不同的种子,则后续产生的随机数不同
>>>seed(7)
>>>random()
0.32383276483316237
>>>random()
0.15084917392450192
注意:在引用random库的时候,from random import * 和 import random 是不一样的,前一种方式可以直接使用模块中的函数和对象,无需在前面加上模块前缀,例如:
>>>from random import *
>>>random()
0.5714025946899135
在使用后在引用时则需要加上模块前缀,例如:
>>>import random
>>>random.random()
0.06294078293936611
二.扩展随机函数
在random库中,最基本的random()和seed()函数功能比较单一,所以在基本函数基础上产生了扩展随机函数。
函数 | 说明 |
randint(a,b) | 生成一个[a,b]之前的整数 |
getrandbits(k) | 生成一个k比特长度的随机整数 |
randrange(start,stop[,step]) | 生成一个[start,step]之前以step为步数的随机整数 |
uniform(a,b) | 生成一个[a,b]之前的随机小数 |
choice(seq) | 以序列类型(例如:列表)中随机返回一个元素 |
shuffle(seq) | 将序列类型中元素随机排序,返回打乱后的序列 |
sample(seq,k ) | 从序列类型中随机选取k个元素,以列表类型返回 |
randint(a,b):生成一个[a,b]之前的整数
>>>import random
>>>random.randint(1,10)#随机生成[1,10]之间的整数
1
genrandbits(k):生成一个k比特长度的随机整数
>>>import random
>>>random.getrandbits(4)
1
>>>random.getrandbits(4)
13
>>>random.getrandbits(7)
46
>>>random.getrandbits(16)
59618
>>>random.getrandbits(32)
2179419893
>>>random.getrandbits(42)
255906125917
randrange(start,stop[,step]):生成一个[start,step]之前以step为步数的随机整数
>>>import random
>>>random.randrange(1,11)#随机生成[1,10]之间的整数
9
>>>random.randrange(1,10,2)#随机生成[1,10]之间的奇数
5
uniform(a,b):生成一个[a,b]之前的随机小数
>>>import random
>>>random.uniform(1,10)#随机生成[1,10]之间的小数
4.103746344594901
choice(seq):以序列类型(例如:列表)中随机返回一个元素
>>>import random
>>>random.choice('hello world')
'r'
>>>random.choice(['我','想','上','班'])
'上'
shuffle(seq):将序列类型中元素随机排序,返回打乱后的序列
>>>import random
>>>a=['我','想','上','班']
>>>random.shuffle(a)#将列表里的元素随机排序
>>>a
['我', '上', '想', '班']
sample(seq,k ):从序列类型中随机选取k个元素,以列表类型返回
>>>import random
>>>random.sample(['我','想','上','班'],2)
['班', '我']
>>>random.sample('hello world',3)
['r', 'd', 'e']
总结:
random库分两大类,基本随机函数和扩展随机函数,扩展随机函数是建立在基本随机函数上的,可以掌握并熟练运用,同时需要注意在库的引用方式不同的时候,使用方式不同(模块前缀加不加),最后,希望大家生活愉快。