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中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
python3.x上post发送json数据
Mar 04 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
Django 路由控制的实现代码
Nov 08 Python
Python字典遍历操作实例小结
Mar 05 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
python 多线程中join()的作用
Oct 29 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统计字符串中中英文字符的个数
2013/06/23 PHP
php 发送带附件邮件示例
2014/01/23 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
javascript中常用编程知识
2013/04/08 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
用js简单提供增删改查接口
2019/05/12 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
python字典多条件排序方法实例
2014/06/30 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
对python 命令的-u参数详解
2018/12/03 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
体育教育个人自荐信范文
2013/12/01 职场文书
课改先进个人汇报材料
2014/01/26 职场文书
家长寄语大全
2014/04/02 职场文书
幼儿生日活动方案
2014/08/27 职场文书
行为规范主题班会
2015/08/13 职场文书
解决vue中provide inject的响应式监听
2022/04/19 Vue.js
详解SQL报错盲注
2022/07/23 SQL Server