Python学习之路(28)——random模块
Python中的random模块用于生成随机数。常用函数包括random()、uniform()、randint()、randrange()、shuffle()、choice()、sample()。
1、random.random()
用于生成一个0到1的随机浮点数:0 <= n < 1.0
>>> import random >>> random.random() 0.33064653439208
2、random.randint(a, b)
用于生成一个指定范围[a, b]内的整数:a <= n <= b
>>> import random >>> random.randint(10,20) 13
3、random.uniform(a, b)
用于生成一个指定范围内的随机浮点数,其中a、b均可作为上下限
>>> import random >>> random.uniform(10, 20) 17.719276599740184 >>> random.uniform(20, 10) 10.071254980939422
4、random.randrange([start, ]stop[ ,step])
用于在指定范围内,按指定步长递增的集合中获取一个随机数。
>>> import random >>>###获取[0, 10)内的随机偶数 >>> random.randrange(0, 10, 2) 0 >>>###获取[1, 11)内的随机奇数 >>> random.randrange(1, 11, 2) 7
5、random.choice([seq])
从序列[seq]中获取一个随机元素,[seq]可以是list、tuple、string。
>>> import random
>>> random.choice([1, 1, 2, 3, 5, 8, 13])
1
>>> random.choice((1, 1, 2, 3, 4, 8, 13))
1
>>> random.choice('I love Python!')
't'
6、random.shuffle(x[, random])
用于将一个列表中的元素打乱。
>>> import random >>> lst = list(range(10)) >>> print(lst) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> random.shuffle(lst) >>> print(random.shuffle(lst)) None >>> lst [6, 1, 5, 2, 0, 9, 4, 7, 3, 8] >>> random.shuffle(lst) >>> print(random.shuffle(lst)) None >>> lst [9, 8, 0, 3, 6, 7, 2, 4, 1, 5]
7、random.sample(seq, k)
从序列seq中随机获取指定长度的切片。sample(采样)函数不会修改原有序列。
>>> import random >>> lst = list(range(10)) >>> print(lst) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> random.shuffle(lst) >>> print(random.shuffle(lst)) None >>> lst [9, 8, 0, 3, 6, 7, 2, 4, 1, 5] >>> slice = random.sample(lst, 5) >>> slice [4, 9, 8, 3, 1] >>> lst [9, 8, 0, 3, 6, 7, 2, 4, 1, 5]
总结:
>>> import random
>>> ###随机整数
>>> random.randint(0, 99)
13
>>> ###随机选取0到100之间的偶数
>>> random.randrange(0, 101, 2)
16
>>> ###随机浮点数
>>> random.random()
0.6890696735021785
>>> random.uniform(1, 10)
8.14760642097281
>>> ###随机字符
>>> random.choice('abcdefg&#%^*')
'^'
>>> ###多个字符中选择特定数量的字符
>>> random.sample('abcdefghijklmn', 5)
['d', 'b', 'c', 'j', 'k']
>>> ###随机选取字符串
>>> random.choice(['apple', 'huawei', 'vivo', 'oppo', 'xiaomi'])
'xiaomi'
>>> ###重新洗牌
>>> items = [1, 2, 3, 4, 5]
>>> random.shuffle(items)
>>> items
[3, 5, 2, 4, 1]
网站里的4位验证码生成:
import random
code = ''
### 每次循环生成一个随机字符,这里要求生成4位随机字符
for i in range(4):
a = random.randint(1,4)
if a == i:
temp = chr(random.randint(65,90)) #chr对应assci表,生成随机字母
else:
temp = random.randint(0,9) #生成随机数字
code +=str(temp)
print(code)
浙公网安备 33010602011771号