random()函数产生伪随机数,伪随机数是采用梅森旋转算法生成的(伪)随机序列中的元素,称为随机数
基本随机函数:seed()、random()
扩展随机函数:ranint()、getrandbits()、uniform()、randrange()、choice()、shuffle()、sample()
#seed(a=None)初始化随机数种子,默认值为当前系统时间 #random()生成一个[0.0,1.0]之间的整数 >>> import random >>> random.seed(5) >>> random.random() 0.6229016948897019 >>> random.random() 0.7417869892607294 >>> random.seed(5) >>> random.random() 0.6229016948897019
#randint(a,b)生成一个[a,b]之间的整数 >>> random.randint(1,10) 6 #getrandbits(k)生成一个k比特长度的随机数 >>> random.getrandbits(10) 814 >>> bin(814) '0b1100101110' #randrange(start,stop[,step])生成一个[start,stop)之间以step步数的随机数整数,使用方法与range()相似 >>> random.randrange(1,10,2) 9 >>> random.randrange(1,10,2) 1 >>> random.randrange(1,11) 8 #uniform(a,b)生成一个[a,b]之间的随机小数 >>> random.uniform(1,10) 7.983627106921452
#choice(seq)从序列类型中随机返回一个seq元素,序列类型包括列表、元组、字符串 >>> import random >>> random.choice([1,2,3,4,5]) 3 >>> random.choice((1,2,3,4,5)) 3 >>> random.choice({1,2,3,4,5}) Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> random.choice({1,2,3,4,5}) File "C:\Program Files\Python36\lib\random.py", line 259, in choice return seq[i] TypeError: 'set' object does not support indexing #对象不支持索引,集合是无序的 >>> random.choice('Python') 'P' #shuffle(func)func变量只能用于列表类型,将列表类型中的元素随机排列,返回打乱后的序列 >>> ls = [1,2,3,4,5] >>> random.shuffle(ls) >>> ls [2, 4, 3, 5, 1] #sample(pop,k)从pop表示的组合数据类型(列表、集合、元组、字符串)中随机选取k个元素,以列表类型返回 >>> random.sample({1,2,3,4,5},3) [3, 4, 5] >>> random.sample((1,2,3,4,5),3) [3, 2, 5] >>> random.sample([1,2,3,4,5],3) [3, 4, 2] >>> random.sample('12345',3) ['2', '5', '4']