Python 应用之验证码验证
1. 问题的描述
用户登录网站经常需要输入验证码,验证码包含大小写字母和数字,随机出现。用户输入验证码时不区分大小写,只要各字符出现顺序正确即可通过验证。 请写一个程序完成验证码的匹配验证,随机生成四位数的验证码如 Qs2X(生成数字概率为 1/5,大写字母和小写字母概率各为 2/5) 如果用户输入验证码正确,输出“验证码正确”,输入错误时输出“验证码错误,请重新输入”,再重新生成验证码让用户输入,输入五次错误时输出“您已用光了验证机会”。
网站上的验证码的作用是保护网站安全,一般网站都要通过验证码来防止机器大规模注册,机器暴力破解数据密码等危害。手机的短信和语音验证码是要确定这个手机是用户自己的。其实最后都是为了验证,这个操作是个人在做而不是机器,证明我是我的过程。
2. 解题的思路
第一步: 由于有生成概率,所以需要使用 random 模块
第二步: 五次输入机会,需要使用 for 循环
3. 解题的方法
第 1 行: 引入 random 随机模块
第 2 行: 定义变量 n=0,用于计算输入错误的次数
第 3 行: 创建函数 verify2,用于随机生成验证码
第 4 行: 创建列表 a,用于存放验证码的字符
第 5 行: for 循环,用来循环五次
第 6 行: 定义变量 x 并为之赋值 0~1 的随机小数
第 7-10 行: 当 x<=0.4 时,即出现概率为 4/10 即 0.4,随机选择大写字母中的一个
第 11-14 行: 当 0.4<x<=0.8 时,即出现概率为 4/10 即 0.4,随机选择小写字母中的一个
第 15-16 行: 其他情况下即 x>0.8 时,即出现概率为 2/10 即 0.2,随机选择一个数字
第 17 行: 将字符连在一起并返回给函数值
第 18 行: 创建函数 code
第 20 行: 定义变量 a 并用 verify2 函数为之随机赋值一个验证码
第 21 行: 使用 input 函数提示用户输入验证码并赋值给 verify
第 22-23 行: 判断输入的验证码小写是否与随机出现的验证码小写状态一样,若是一样,则打印验证码正确
第 24-25 行: 若是不一样,给全局变量 n 加一
第 26-27 行: 当 n 等于 5 的时候,代表以及输错了五次,打印您已用光了验证机会
第 28-30 行: 若还未输入五次错误,让用户重新输入验证码,并重新开始判断
第 31 行: 使用 code 函数开始运行代码
代码运行结果为:
版权声明: 本文为 InfoQ 作者【向阳逐梦】的原创文章。
原文链接:【http://xie.infoq.cn/article/e27f2c5a5dcc9605b1e65581c】。文章转载请联系作者。
评论