随机验证码实现

作者: 老黄爱Python | 来源:发表于2017-02-07 10:04 被阅读16次
验证码是很多网站登陆注册的必选项,我们可以使用随机数来实现这一功能。

需求:产生N位随机码,必须有数字和字母组成。

1. 需求分析:

1)随机码N位;
2)最少包含1位数字或者1位字母;
3)数字和字母也是随机产生。

2. 实现思路:
  • 确定数字和字母个数;
#-*-coding:utf-8 -*-
import random
tCode = 5    #随机码总数5
numN = random.randint(1, 4) #数字个数1~4之间
numC = tCode - numN
print (numN, numC)

执行结果:2,3(结果是随机的)

  • 产生相应的随机数字和随机字母;
    定义字符串数字和字母,并产生相应的随机结果:
listN = '1234567890'                 #数字
listC = 'abcdefghigklmnopqrstuvwxyz' #字母
for x in range(numN):                #随机数字产生
    random.choice(listN) 
for x in range(numC):                #随机字母产生
    random.choice(listC)
  • 代码实现:
    使用函数实现该需求:
    函数名:genTcodes
    函数参数:tCodeN,传入产生随机数个数
    返回值:随机码
    具体代码如下:
#-*-coding:utf-8 -*-
import random
def genTcodes(tCodeN):
    numN = random.randint(1, 4) #数字个数1~4之间
    numC = tCodeN - numN
    print (numN, numC)

    listN = '1234567890'
    listC = 'abcdefghigklmnopqrstuvwxyz'
    tCodeS = ""                #保存随机码
    for x in range(numN):
        tCodeS += random.choice(listN)  #随机数字
    for x in range(numC):
        tCodeS += random.choice(listC)  #随机字符
    return tCodeS                       #返回随机码
print (genTcodes(5))

执行结果如下:
1 4
4ypwa

总结:简单的随机码程序已经实现,但是我们发现字母和数字的位置不是随机的,怎么办?

我们可以将每个位置打乱,实现真正随机。

这样就能完美结局这个问题。后续当我们讲解列表时候继续优化这个需求。

相关文章

网友评论

    本文标题:随机验证码实现

    本文链接:https://www.haomeiwen.com/subject/blkpittx.html