随机验证码

1、使用random模块中的randrange方法,进行随机获取数据。
2、使用chr()函数将数字转成字母
3、根据ascii码的二进制编号产生字母:
 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 # Author:Dong Ye
 4 import random
 5 #一位的字母验证法:
 6 i = random.randrange(65,91)
 7 c = chr(i)
 8 print(c)
 9 
10 显示结果:
11 I
12 
13 
14 #6位的字母验证法:
15 li = []
16 for i in range(6):
17     temp = random.randrange(65,91)
18     c = chr(temp)
19     li.append(c)
20 result = ''.join(li)
21 print(result)
22 
23 显示结果:
24 JRSVDJ
25 
26 
27 
28 #生产数字+字母(固定位置)
29 lis = []
30 for i in range(6):
31     if i == 2 or i == 4:
32         num = random.randrange(0, 10)  #用randrange指定ascii码的二进制数字
33         lis.append(str(num))   #由于join的时候字符串和数字在一起会报错所以要str下转成字符串
34     else:
35         temp = random.randrange(65,91)
36         c = chr(temp)
37         lis.append(c)
38 res = ''.join(lis)
39 print(res)
40 
41 
42 显示结果:
43 FE2F5E
44 
45 
46 #完整版:
47 #生产随机数字+字母的验证码:
48 lis1 = []
49 for i in range(6):
50     num1 = random.randrange(0, 5)
51     if num1 == 2 or num1 == 4:
52         num2 = random.randrange(0, 10)
53         lis1.append(str(num2))
54     else:
55         num3 = random.randrange(65, 91)
56         c = chr(num3)
57         lis1.append(c)
58 result = ''.join(lis1)
59 print(result)
60 
61 
62 显示结果:
63 6V3XQ3

本地调用随机验证码模块

 1 import random
 2 def rand_auth_code():
 3     '''
 4     定义2个功能,一个是随机提取字母,另一个是随机提取数字。
 5     循环5次每次循环都会append到列表中。然后在用join做列表关联。
 6     随机提取数字1到5任意一个数,如果等于1或者等于3的时候输入字母。
 7     注意:python3.0中字母与数字join关联,数字必须转成str格式,否则报错。
 8     :return:返回随机验证码的列表rand_code_li
 9     '''
10     rand_code_li = []
11     for i in range(5):  #循环5次,每次循环都会加入到rand_code_li列表里。
12         r = random.randrange(1,5)   #随意从1到5中提取任意一个数
13         if r ==1 or r ==3:       #如果等于1或者3
14             temp = random.randrange(65,91)  #随机提取英文字母的ascii码的10进制编号
15             int_code = chr(temp)   #通过chr转换成英文字母
16             rand_code_li.append(int_code)  #将转换成的字母添加到rand_code_li列表里
17         else:                              #如果随机1到5的值不等于1或者3,则:
18             temp1 = random.randrange(1,10)   #随机获取将1都10的数字
19             rand_code_li.append(str(temp1)) #将数字加入到rand_code_li列表中
20     code = "".join(rand_code_li)    #关联rand_code_li列表里的字母与数字
21     return code   #返回结果值
22 if __name__ == '__main__':
23     ret = rand_auth_code()
24     print(ret)
25     
26     
27 显示结果:
28 Z45X1

不同部门调用验证码

 1 import sys,os
 2 package_dir =os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))   #定义父级目录
 3 sys.path.insert(0,package_dir)  #添加父级目录到sys.path
 4 from log_code_auth import rand #导入验证码模块下的函数
 5 ret = rand.rand_auth_code()  #调用验证码函数
 6 print(ret)  #打印验证码
 7 
 8 
 9 显示结果
10 FI65F
原文地址:https://www.cnblogs.com/abobo/p/8035872.html