在python中,random模块用于生成随机数。下面介绍一下random模块中最常见的几个函数。
从序列中获取一个随机元素,参数seq表示一个有序类型,seq在python中不是一种特定类型,而是泛指一系列的类型,如list、tuple、字符串。
import random
print(random.choice('abcdefe'))
print(random.choice(['hello','world','python']))
print(random.choice(('Tuple','three','seq')))
用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,则生成的随机数n为:a<=n<=b。
import random
a = random.randint(4,10)
random.random()用于生成一个0到1范围的随机浮点数,范围为[0,1)即大于等于0小于1的浮点数。
import random
a = random.random()
print('a = ',a)#a = 0.08992318818473621(随机数,每次运行值不同)
从指定基数递增的集合中获取一个随机数。如random.randrange(10,100,2),结果相当于从[10,12,14,...,96,98]序列中获取一个随机数,在结果上与random.choice(range(10,100,2))等效。
import random
list = [1,2,3,4,5,6,7,8,9,0]
slice = random.sample(list,4)
print(slice)#某次运行为[5,2,0,4]
print(list)#[1,2,3,4,5,6,7,8,9,0]
伪随机数生成模块。如果不提供seed,默认使用系统时间。使用相同的seed,可以获得完全相同的随机数序列,常用于算法改进测试。
from random import *
a = Random()
a.seed(1)
[a.randint(1, 100) for i in range(20)]
b = Random()
b.seed(1)
[b.randint(1, 100) for i in range(20)]
用于将一个列表中的元素打乱。
p = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(p)
print(p)
用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a>b,则生成的随机数n:b<=n<=a;如果an:a<=n<=b。
import random
print(random.uniform(10,36))
print(random.uniform(36,10))