Python学习之路(十三):基础知识之random模块

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))

猜你喜欢

转载自www.cnblogs.com/Studying-Du/p/12361188.html