结论先行
生成随机数:
# salt = ''.join(random.choices(string.ascii_letters + string.digits, k=3))
salt = ''.join(random.sample(string.ascii_letters + string.digits, 3))
print(salt)
random模块
python标准库中的
random
函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据。
random主要函数接受
-
random.random() 用于生成一个随机浮点数
>>> import random >>> random.random() 0.025952242994744412
-
random.uniform(a,b) 用于生成一个指定范围的随机浮点数。若a=b,则生成的浮点数是a
-
>>> random.uniform(2,5) 2.3194041077057443 >>> random.uniform(2,2) 2.0
-
random.randint(a,b) 用于生成一个指定范围内的整数,生成的随机整数a<=n<=b
-
>>> random.randint(2,3) 2 >>> random.randint(2,3) 3 >>> random.randint(2,2) 2
-
random.randrange([start],stop[,step]) 从指定范围,按指定基数递增的集合中获取一个随机数,基数缺省值为1,不包含stop。
-
random.randrange(10) #输出0~10之间的任意数 random.randrange(10,100) #输出为10到100间的任意数 random.randrange(10,100,4) #输出为10到100内以4递增的序列[10,14,18,22...] random.choice(range(10,100,4)) #输出在结果上与上一条等效
-
random.shuffle(x[,random]) 用于将一个列表中的元素打乱
-
>>> list=[1,2,3,4,5] >>> random.shuffle(list) >>> list [4, 1, 2, 5, 3] >>> random.shuffle(list) >>> list [2, 4, 3, 1, 5]
-
random.choice(sequence) 从序列中获取 一个 随机元素,包括list、tuple、字符串等
-
>>> random.choice(range(10)) 7 >>> random.choice("hello") 'e' >>> random.choice([1,2,3]) 3 >>> random.choice((1,2,3)) 1
-
random.choices(sequence,k=n) 从指定序列中随机获取n个元素作为一个片段返回。该函数还可以设置各个元素的权重,详见官方文档。python3才有的函数。
>>> import random >>> random.choices('12345678',k=3) ['6', '3', '7']
-
random.sample(sequence,k) 从指定序列中随机获取k个元素作为一个片段返回,sample函数不会修改原有序列
-
>>> a='1234567890' >>> random.sample(a,3) ['4', '1', '5'] >>> a '1234567890' # a不变 >>> random.sample([1,2,3,4,5,6,7,8],3) [1, 7, 5] >>> random.sample((1,2,3,4,5,6,7,8),3) [6, 2, 7]