更新时间:2022-09-22 15:24:54
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()
|