1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
"""
作者:白
时间:2018年1月8日
功能: 生成随机4位验证码(必须由两个2字母和2个数字组成)
"""
import
random
def
main():
list_num
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
0
]
list_str
=
[
'a'
,
'b'
,
'c'
,
'd'
,
'e'
,
'f'
,
'g'
,
'h'
,
'i'
,
'j'
,
'k'
,
'l'
,
'm'
,
'n'
,
'o'
,
'p'
,
'q'
,
's'
,
't'
,
'x'
,
'y'
,
'z'
]
veri_str
=
random.sample(list_str,
2
)
veri_num
=
random.sample(list_num,
2
)
veri_out
=
random.sample(veri_num
+
veri_str,
4
)
veri_res
=
str
(veri_out[
0
])
+
str
(veri_out[
1
])
+
str
(veri_out[
2
])
+
str
(veri_out[
3
])
print
(veri_res)
if
__name__
=
=
'__main__'
:
main()
|
这里有两个问题:
1、如何简化list_str 生成一个a-z的列表,这里我就用比较笨的方法一个一个列出来了
2、不知道python有没有一键式的函数,生成验证码的那种
如知道以上两个问题的,可以留言告诉我一下,不胜感激!~
对于上面的问题,经过昨天下午的测试和练习以不同函数分开的方法拼接而成,这样方便后面对于不同模块的使用。
版本二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
"""
作者:白
日期:2018年1月8日
功能:利用random/chr()/ord()生成一个4位随机数(包含大小写字母和数字)
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
"""
import
random
veri_list
=
[]
#通过chr()函数取随机大写字母A-Z
def
A_str():
for
i
in
range
(
4
):
veri_num1
=
random.randint(
65
,
90
)
#取值65-90随机一个整数
veri_str1
=
chr
(veri_num1)
veri_list.append(veri_str1)
#通过chr()函数取随机小写字母a-z
def
a_str():
for
i
in
range
(
4
):
veri_num2
=
random.randint(
97
,
122
)
# 取值98-122随机一个整数
veri_str2
=
chr
(veri_num2)
# 转换小写字母a-z的随机
veri_list.append(veri_str2)
#通过chr()和ord()函数取随机数字0-9
def
num_1():
for
i
in
range
(
4
):
veri_num3
=
random.randint(
48
,
57
)
veri_str3
=
chr
(veri_num3)
veri_list.append(veri_str3)
#执行主函数
def
main():
A_str()
a_str()
num_1()
veri_res
=
random.sample(veri_list,
4
)
# print(veri_res)
print
(
str
(veri_res[
0
])
+
str
(veri_res[
1
])
+
str
(veri_res[
2
])
+
str
(veri_res[
3
]))
if
__name__
=
=
'__main__'
:
main()
|
本文转自 yuri_cto 51CTO博客,原文链接:http://blog.51cto.com/laobaiv1/2058595,如需转载请自行联系原作者