Python的random

python中random模块可以生成随机数或随机顺序或随机选择

我们常用的有random, randint, randrange, shuffle, sample, uniform,choice

random: 随机生成 [0,1) 的实数

1
2
3
import random
x = random.random()
print(x)
0.9065644990934733

randint: 随机生成 [min,max] 范围内的整数

1
2
3
import random
x = random.randint(1, 100)
print(x)
21

randrange:随机生成[start, stop,step]范围内的整数 设置step可以规定步长

1
2
3
4
import random
for _ in range(10): # 通过循环十次看看随机生成的效果
x = random.randrange(1, 100, 2)# 随机生成一到一百的奇数
print(x, end=' ') # 通过设置end让结果打印在一排
53 27 1 51 31 65 13 15 87 93 

uniform:随机生成[min,max]范围内的浮点数

1
2
3
import random
x = random.uniform(1,10)
print(x)
9.11079652346942

shuffle: 将列表的顺序打乱(列表按随机排序)

1
2
3
4
import random
list1 = [1,2,3,4,5,6,7,8,9,10]
random.shuffle(list1) # 打乱列表顺序
print(list1) # 原有列表已经被随机排序
[1, 6, 3, 7, 8, 5, 9, 4, 10, 2]

sample:从容器中随机选出指定数量的元素,容器可以是列表、字符串、元组

1
2
3
4
5
6
7
8
9
10
11
12
13
import random
list1 = [1,2,3,4,5,6,7,8,9,10]
string1 = 'abcdefghijk'
tuple1 = (1,2,3,4,5,6,7,8,9,10)
x = random.sample(list1,3) # 随机在list1中选取3个元素
y = random.sample(string1,3) # 随机在字符串中选取三个元素
z = random.sample(tuple1,2) # 随机在元组中选取两个元素
print(x)
print(y)
print(z)
print(list1) # sample并不改变原有容器
print(string1)
print(tuple1)
[6, 4, 7]
['h', 'g', 'k']
[1, 6]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
abcdefghijk
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

choice:从容器中随机选取一个元素,容器可以是列表、字符串、元组

1
2
3
4
5
6
7
8
9
10
11
12
13
import random
list1 = [1,2,3,4,5,6,7,8,9,10]
string1 = 'abcdefghijk'
tuple1 = (1,2,3,4,5,6,7,8,9,10)
x = random.choice(list1) # 随机在list1中选取元素
y = random.choice(string1) # 随机在字符串中选取元素
z = random.choice(tuple1) # 随机在元组中选取元素
print(x)
print(y)
print(z)
print(list1) # choice并不改变原有容器
print(string1)
print(tuple1)
1
c
8
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
abcdefghijk
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)