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函数的周期性执行实现方法
Aug 13 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python异常处理操作实例详解
May 10 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
python设定并获取socket超时时间的方法
Jan 12 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
Python实现给PDF添加水印的方法
Jan 25 Python
python 制作一个gui界面的翻译工具
May 14 Python
Python实现8种常用抽样方法
Jun 27 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(3) php 函数
2010/02/15 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
Angular工具方法学习
2016/12/26 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python采用Django开发自己的博客系统
2020/09/29 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
Python连接Redis的基本配置方法
2018/09/13 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
用python爬取租房网站信息的代码
2018/12/14 Python
详解python编译器和解释器的区别
2019/06/24 Python
python自动点赞功能的实现思路
2020/02/26 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
python合并多个excel文件的示例
2020/09/23 Python
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
致共产党员倡议书
2014/04/16 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
业务员辞职信范文
2015/03/02 职场文书
php修改word的实例方法
2021/11/17 PHP