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 面向对象 成员的访问约束
Dec 23 Python
python随机生成指定长度密码的方法
Apr 04 Python
python通过socket查询whois的方法
Jul 18 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python Tensor和Array对比分析
Jan 08 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
Python 用__new__方法实现单例的操作
Dec 11 Python
Matplotlib中rcParams使用方法
Jan 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
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
用jquery快速解决IE输入框不能输入的问题
2016/10/04 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
python复制文件代码实现
2013/12/23 Python
Python Web服务器Tornado使用小结
2014/05/06 Python
Python中使用SAX解析xml实例
2014/11/21 Python
Python中threading模块join函数用法实例分析
2015/06/04 Python
python调用百度REST API实现语音识别
2018/08/30 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python 实现按对象传值
2019/12/26 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
使用Python pip怎么升级pip
2020/08/11 Python
详解python polyscope库的安装和例程
2020/11/13 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
成语的广告词
2014/03/19 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
小爸爸观后感
2015/06/15 职场文书
《鲸》教学反思
2016/02/23 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang