和老黄一起学Python

随机验证码实现

2017-02-07  本文已影响16人  老黄爱Python
验证码是很多网站登陆注册的必选项,我们可以使用随机数来实现这一功能。

需求:产生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)
#-*-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

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

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

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

上一篇下一篇

猜你喜欢

热点阅读