Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法方法一:利用range
Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法
方法一:
利用range方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# -*- coding: utf-8 -*-
import
random
def
generate_verification_code(
len
=
6
):
''' 随机生成6位的验证码 '''
# 注意: 这里我们生成的是0-9A-Za-z的列表,当然你也可以指定这个list,这里很灵活
# 比如: code_list = ['P','y','t','h','o','n','T','a','b'] # PythonTab的字母
code_list
=
[]
for
i
in
range
(
10
):
# 0-9数字
code_list.append(
str
(i))
for
i
in
range
(
65
,
91
):
# 对应从“A”到“Z”的ASCII码
code_list.append(
chr
(i))
for
i
in
range
(
97
,
123
):
#对应从“a”到“z”的ASCII码
code_list.append(
chr
(i))
myslice
=
random.sample(code_list,
len
)
# 从list中随机获取6个元素,作为一个片断返回
verification_code
=
''.join(myslice)
# list to string
return
verification_code
|
方法二:
利用randint方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# -*- coding: utf-8 -*-
import
random
def
generate_verification_code_v2():
''' 随机生成6位的验证码 '''
code_list
=
[]
for
i
in
range
(
2
):
random_num
=
random.randint(
0
,
9
)
# 随机生成0-9的数字
# 利用random.randint()函数生成一个随机整数a,使得65<=a<=90
# 对应从“A”到“Z”的ASCII码
a
=
random.randint(
65
,
90
)
b
=
random.randint(
97
,
122
)
random_uppercase_letter
=
chr
(a)
random_lowercase_letter
=
chr
(b)
code_list.append(
str
(random_num))
code_list.append(random_uppercase_letter)
code_list.append(random_lowercase_letter)
verification_code
=
''.join(code_list)
return
verification_code
|
测试:
1
2
3
4
|
code
=
generate_verification_code(
6
)
code2
=
generate_verification_code_v2()
print
code
print
code2
|
输出结果:
1
2
|
Glc5Tr
Hr6t7B
|
我个人更倾向于第一种方法,更加灵活,可以随意设置验证码长度。