random模块:取随机数的模块。
1.取随机小数
1 # 取随机小数:数字计算
2 print(random.random()) # 取0-1之间的小数
3 print(random.uniform(1, 2)) # 取一定范围内的小数
2.取随机整数
1 # 取随机整数:彩票 抽奖
2 print(random.randint(1, 2)) # 两边的值都能取到
3 print(random.randrange(1, 2)) # 取左不取右
4 print(random.randrange(1, 200, 2)) # 打印1-100之间的奇数
3.从列表中随机取值
1 lst = ['a', 'b', (1, 2), 123] 2 print(random.choice(lst)) # 用choice取两次值可能重复 3 print(random.sample(lst, 2)) # 用sample不会重复
4.打乱一个列表的顺序
1 # 打乱一个列表的顺序,节省空间:洗牌 2 lst = ['a', 'b', (1, 2), 123] 3 random.shuffle(lst) # 节省空间 4 print(lst)
5.实例
5.1 验证码
1 def func(n):
2 s = ''
3 for i in range(n):
4 num = random.randint(0, 9)
5 s += str(num)
6 return s
7 ret = func(6)
8 print(ret)
1 # 6位数字+字母验证码
2 # 一个位置上出现数字或者字母应该是随机的
3 s = ''
4 for i in range(6):
5 num = str(random.randint(0, 9))
6 alpha = chr(random.randint(65, 90))
7 res = random.choice([num, alpha])
8 s += res
9 print(s)
1 # 加入大小写字母
2 s = ''
3 for i in range(6):
4 num = str(random.randint(0, 9))
5 alpha_upper = chr(random.randint(65, 90))
6 alpha_lower = chr(random.randint(97, 122))
7 res = random.choice([num, alpha_lower, alpha_upper])
8 s += res
9 print(s)
1 # 数字字母兼容的验证码
2 def func(n = 6, alpha = True):
3 s = ''
4 for i in range(n):
5 num = str(random.randint(0, 9))
6 if alpha:
7 alpha_upper = chr(random.randint(65, 90))
8 alpha_lower = chr(random.randint(97, 122))
9 num = random.choice([num, alpha_lower, alpha_upper])
10 s += num
11 return s
12 print(func(4, False))
13 print(func(alpha = False))