利用Python生成随机4位验证码

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  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  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  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,如需转载请自行联系原作者
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值