概述
random是Python中与随机数相关的模块,其本质就是一个伪随机数生成器,我们可以利用random模块基础生成各种不同的随机数,以及一些基于随机数的操作。
生成随机数相关
生成0~1之间的浮点数
import random
r = random.random()
print(r)
r = random.random()
print(r)
示例结果:
0.9928249533693085
0.474901555446297
生成指定范围内的浮点数
import random
r = random.uniform(1, 100)
print(r)
r = random.uniform(100, 1)
print(r)
示例结果:
69.0347778479432
3.2085981780335118
即随机范围两端可以随意放置范围,无须左边小右边大。
生成指定范围内的整数
import random
r = random.randint(1, 100)
print(r)
示例结果:
58
randrange生成随机整数
利用randrange生成递增序列然后从序列中随机返回一个整数
import random
# 0 - 100 随机序列
r = random.randrange(101)
print(r)
# 10 - 100 随机序列
r = random.randrange(10, 101)
print(r)
# 10 - 100 并且步进(间隔)为3 的 随机序列
r = random.randrange(10, 101, 3)
print(r)
示例结果:
52
60
46
序列处理相关
从序列中获取一个随机元素
利用random.choice(iter)从任意序列中,比如列表,元组,字典等随意获取一个元素
import random
S = 'I like Python'
# 生成一个列表
L = S.split(' ')
print(L)
r = random.choice(L)
print(r)
打乱序列元素的排列顺序
利用random.shuffle(iter)将原序列中的元素排列打乱
import random
S = 'I like Python'
# 生成一个列表
L = S.split(' ')
print(L)
random.shuffle(L)
print(L)
示例结果:
['I', 'like', 'Python']
['like', 'Python', 'I']
从序列随机获取多个元素
利用random.sample()序列中随机获取指定个数的元素,并返回指定长度的序列,不会改变原有序列
# 生成一个递增序列
L = range(11)
rs = random.sample(L, 4)
print(rs)
示例结果:
[1, 0, 10, 7]