Python实现简单生成验证码功能【基于random模块】


Posted in Python onFebruary 10, 2018

本文实例讲述了Python实现简单生成验证码功能。分享给大家供大家参考,具体如下:

验证码一般用来验证登陆、交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内置函数来实现一个简单的验证码功能。

import random
def veri_code():
  li = []
  for i in range(6): #循环6次,生成6个字符
    r = random.randrange(0, 5) #随机生成0-4之间的数字
    if r == 1 or r == 4:  #如果随机数字是1或者4时,生成0-9的数字
      num = random.randrange(0, 9)
      li.append(str(num))
    else:  #如果不是1或者4时,生成65-90之间的数字
      temp = random.randrange(65, 91)
      char = chr(temp)  #将数字转化为ascii列表中对应的字母
      li.append(char)
  r_code = ''.join(li)  #6个字符拼接为字符串
#  print('\033[31;1m%s\033[0m' % r_code)
  return r_code  #返回字符串
#测试
print(veri_code())#运行结果:BKT8RL

基本原理是使用random,随机生成数字:

1.要几个字符就循环几次

2.随机生成一个数字,定义如果这个数字为其中某值X时,再随机一个0-9中间的数字。为什么0-9呢,因为10的话就占了两个字符了........

3.循环时,随机数字如果不为X时,生成一个65-90之间的数字,然后使用char()函数转化为ascii列表中对应的字母,当然就是大写的A-Z啦

4.将生成的字符加入列表,最后将列表拼接成字符串就O了

Python 相关文章推荐
python多进程和多线程究竟谁更快(详解)
May 29 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
python迭代dict的key和value的方法
Jul 06 Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
基于OpenCV的路面质量检测的实现
Nov 04 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 Python
Django中Forms的使用代码解析
Feb 10 #Python
Python中列表与元组的乘法操作示例
Feb 10 #Python
Python程序运行原理图文解析
Feb 10 #Python
Python迭代器和生成器定义与用法示例
Feb 10 #Python
Python中装饰器学习总结
Feb 10 #Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 #Python
Python中生成器和迭代器的区别详解
Feb 10 #Python
You might like
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
Python中使用第三方库xlrd来写入Excel文件示例
2015/04/05 Python
Python subprocess模块详细解读
2018/01/29 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
应届护士推荐信
2013/11/16 职场文书
绿色环保演讲稿
2014/05/10 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
十八大标语口号
2014/10/09 职场文书
小学大队长竞选稿
2015/11/20 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
2019大学生实习报告
2019/06/21 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android