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中的lstrip()方法使用简介
May 19 Python
Python中的pack和unpack的使用
Mar 12 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
Python3 实现减少可调用对象的参数个数
Dec 20 Python
python定义类self用法实例解析
Jan 22 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
python爬虫工具例举说明
Nov 30 Python
Python环境搭建过程从安装到Hello World
Feb 05 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
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
详解Python迭代和迭代器
2016/03/28 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
食品安全检查制度
2014/02/03 职场文书
党员群众路线承诺书
2014/05/20 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
贷款工资证明范本
2015/06/12 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技