zoukankan      html  css  js  c++  java
  • 随机验证码

    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
  • 相关阅读:
    组合数学总结
    字符串算法总结
    数据结构总结
    CDQ分治(学习笔记)
    网络流(学习笔记)
    string
    water
    mine
    洛谷 P4035 【球形空间产生器】
    洛谷 P3306 【随机数生成器】
  • 原文地址:https://www.cnblogs.com/abobo/p/8035872.html
Copyright © 2011-2022 走看看