验证码是很多网站登陆注册的必选项,我们可以使用随机数来实现这一功能。
需求:产生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