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