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 文件和输入输出小结
Oct 09 Python
python中的yield使用方法
Feb 11 Python
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
Feb 04 Python
Python创建模块及模块导入的方法
May 27 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
python实发邮件实例详解
Nov 11 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
python实现局域网内实时通信代码
Dec 22 Python
python 利用已有Ner模型进行数据清洗合并代码
Dec 24 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
Python修改列表值问题解决方案
Mar 06 Python
python 合并多个excel中同名的sheet
Jan 22 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
中学优秀班主任事迹材料
2014/05/01 职场文书
安全教育演讲稿
2014/05/09 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
创先争优个人承诺书
2014/08/30 职场文书
Django操作cookie的实现
2021/05/26 Python
深入理解redis中multi与pipeline
2021/06/02 Redis
react 路由Link配置详解
2021/11/11 Javascript