Python实现一个简单的验证码程序


Posted in Python onNovember 03, 2017

老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的人,何时能学会。还有就是,这次听老师的,把自己的代码添加注释,所以这次把很简单的代码都写上了注释,而且很大白话,不管有没有接触过python的,我相信仔细看了,肯定能看懂。如果看完,再自己尝试着默写出来,那就是更好到了,好了进入正题:

自己写的:

__Author__ = "Zhang Peng"
import random
#导入random模块

code='abcdefdhigkmlnopqrstuvwxyzABCDEFDHIGKMLNOPQRSTUVWXYZ0123456789'
#定义一个验证码的库,赋给变量code

checkcode=''
#定义一个空字符串,赋给checkcode

count=0
#需要对循环进行计数,初始值设为0

while count<6:
  #添加一个while循环,当count小于6的时候就会一直循环

  i=random.choice(code)
  #choice是random里面的一个方法,就是把code里面的值随机取出一个来赋给i

  checkcode+=i
  #把checkcode+i重新赋值给checkcode,每循环一次checkcode长度都会增加一位

  count+=1
  #把count+1赋值给count,每循环一次,count都会加1
else:
  #else是while循环的一个用法,就是当count不小于6的时候做什么事
  pass
  #我这里写的是,当count不小于6就跳过这个循环

print(checkcode)
#最后打印一下checkcode,这里的checkcode每运行一次都会是不同的值

结果:

M9Y7sE

自己的代码,看着最别扭的就是,自己定义的那一堆code,显得很笨重,下面看看老师给的示例(这个示例,是经过我简单加工后的,老师演示的里面只可以打印出大写字母和数字的6位验证码):

__Author__ = "Zhang Peng"
import random
#导入random模块

checkcode=''
#定义一个空字符串,赋给checkcode

for i in range(6):
  #这里一个for循环,是让i在range(6)中循环,每次循环取出
  # 来的值,赋给i;这里range(6)=(0,1,2,3,4,5)

  current=random.randrange(0,6)
  #randrange是random中的一个方法,随机从range(0,6)中取一个数出来,赋值给current

  if current<2:
    #这里用了一个if语句,如果current小于2,做什么事

    checkcode+=chr(random.randint(65,90))
    #如果current等于i,randint也是random中的一个方法,chr是python中的内置函数
    #意思是把数字转换成ascll码表对应的字符,65到90正好对应ascll码中的大写A到大写Z
    #这句函数意思是chr取出一个字母加上checkcode,重新赋值给checkcode

  elif current >= 2 and current < 4 :
    #elif,如果current大于等于2,且小于4做什么。

    checkcode += chr(random.randint(97, 122))
    # 其他类似于上一条,其中97到122正好对应ascll码中的小写a到小写z

  else:
    #if的用法,如果current不符合上面条件,做什么事

    checkcode+=str(random.randint(0,9))
    #str也是python的内置函数,就是把什么转换为字符串,这里是把0到9的任意一个整数
    #取出来,加上checkcode,重新赋值给checkcode

print(checkcode)
#最后打印一下checkcode

运行结果:

vgW2u3

自己加过过后,感觉添加了一个elif,显的还是有些笨重,希望以后可以研究出更清晰的代码。

总结

以上就是本文关于Python实现一个简单的验证码程序的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python编程django实现同一个ip十分钟内只能注册一次、简单了解Python中的几种函数、Python算法输出1-9数组形成的结果为100的所有运算式等,欢迎大家留言提出宝贵意见,共同交流进步。感谢朋友们对本站的支持!

Python 相关文章推荐
python调用短信猫控件实现发短信功能实例
Jul 04 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
用matplotlib画等高线图详解
Dec 14 Python
Python中Threading用法详解
Dec 27 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
教你怎么用Python操作MySql数据库
May 31 Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 #Python
简单了解Python中的几种函数
Nov 03 #Python
python Pygame的具体使用讲解
Nov 03 #Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 #Python
django定期执行任务(实例讲解)
Nov 03 #Python
python嵌套字典比较值与取值的实现示例
Nov 03 #Python
基于Python os模块常用命令介绍
Nov 03 #Python
You might like
php 运行效率总结(提示程序速度)
2009/11/26 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
常用js脚本
2006/12/03 Javascript
JSON 学习之完全手册 图文
2007/05/29 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
python实现自主查询实时天气
2018/06/22 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技
Python函数对象与闭包函数
2022/04/13 Python
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技
MySQL新手入门进阶语句汇总
2022/09/23 MySQL