今天做练习的时候碰到这样一个需求:生成随机的5位验证码,以及后续的输入验证,相对后面的验证比较简单,就不赘述了。要求验证码由数字、字母组成,位置不固定。
思路:
1.由ascii码转换成数字和字母,用到chr()方法
2.数字的ascii码范围是48-57,大写字母是65-90,小写字母是97-122
3.用随机函数random生成的范围是单个的,所以考虑用2个随机函数嵌套,第一层生成1-3三个数字,对应3个范围,用if判断,第二层对应相应的验证码,这样就可以实现了
4.生成空列表,将随机数放进去,完成后用join连接字符串返回
如果有更好的思路,求大神指导,代码如下:
import random
def code():
num=1
code_num=[]
while num <6:
num_ran = random.randint(1, 3)
if num_ran == 1:
a1=chr(random.randint(48,51))
elif num_ran == 2:
a1 = chr(random.randint(65, 90))
else:
a1 = chr(random.randint(97, 122))
code_num.append(a1)
num+=1
return ''.join(code_num)