当前位置: 首页 > news >正文

利用Python生成随机4位验证码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
"""
            作者:白
            时间:2018年1月8日
            功能: 生成随机4位验证码(必须由两个2字母和2个数字组成)
"""
import   random
 
def  main():
     list_num  =  [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ]
     list_str  =  [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 's' , 't' , 'x' , 'y' , 'z' ]
     veri_str  =  random.sample(list_str, 2 )
     veri_num  =  random.sample(list_num, 2 )
     veri_out  =  random.sample(veri_num  +  veri_str, 4 )
     veri_res  =  str (veri_out[ 0 ])  +  str (veri_out[ 1 ])  +  str (veri_out[ 2 ])  +  str (veri_out[ 3 ])
     print (veri_res)
 
if  __name__  = =  '__main__' :
     main()

这里有两个问题:

1、如何简化list_str  生成一个a-z的列表,这里我就用比较笨的方法一个一个列出来了

2、不知道python有没有一键式的函数,生成验证码的那种


如知道以上两个问题的,可以留言告诉我一下,不胜感激!~


对于上面的问题,经过昨天下午的测试和练习以不同函数分开的方法拼接而成,这样方便后面对于不同模块的使用。

版本二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"""
         作者:白
         日期:2018年1月8日
         功能:利用random/chr()/ord()生成一个4位随机数(包含大小写字母和数字)
chr(x)                 将一个整数转换为一个字符
ord(x)                 将一个字符转换为它的整数值
"""
import  random
veri_list  =  []
#通过chr()函数取随机大写字母A-Z
def  A_str():
     for  in  range ( 4 ):
         veri_num1  =  random.randint( 65 , 90 )   #取值65-90随机一个整数
         veri_str1  =  chr (veri_num1)
         veri_list.append(veri_str1)
 
#通过chr()函数取随机小写字母a-z
def  a_str():
     for  in  range ( 4 ):
         veri_num2  =  random.randint( 97 , 122 )   # 取值98-122随机一个整数
         veri_str2  =  chr (veri_num2)            # 转换小写字母a-z的随机
         veri_list.append(veri_str2)
 
#通过chr()和ord()函数取随机数字0-9
def  num_1():
     for  in  range ( 4 ):
         veri_num3  =  random.randint( 48 , 57 )
         veri_str3  =  chr (veri_num3)
         veri_list.append(veri_str3)
 
#执行主函数
def  main():
     A_str()
     a_str()
     num_1()
     veri_res  =  random.sample(veri_list, 4 )
     # print(veri_res)
     print ( str (veri_res[ 0 ])  +  str (veri_res[ 1 ])  +  str (veri_res[ 2 ])  +  str (veri_res[ 3 ]))
if  __name__  = =  '__main__' :
     main()





本文转自 yuri_cto 51CTO博客,原文链接:http://blog.51cto.com/laobaiv1/2058595,如需转载请自行联系原作者

相关文章:

  • 测试标准学习
  • 一些不常见的css知识
  • 第四课——MFC应用程序框架
  • 列表、元祖概述
  • 拨云见日—深入解析Oracle TX 行锁(上)
  • 询问Spring Bott和高并发框架两个问题
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • MicroProfile 1.2新增功能介绍
  • Google瓦片地图算法解析
  • TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成
  • 网络流媒体技术及其应用
  • 【安全牛学习笔记】w3af-截断代理
  • 典型Linux发行版内核版本
  • Web开发中的文件上传组件uploadify的使用
  • httpie使用详解
  • Apache Pulsar 2.1 重磅发布
  •  D - 粉碎叛乱F - 其他起义
  • docker python 配置
  • EOS是什么
  • Go 语言编译器的 //go: 详解
  • Javascript基础之Array数组API
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Material Design
  • rc-form之最单纯情况
  • Travix是如何部署应用程序到Kubernetes上的
  • 从零开始学习部署
  • 飞驰在Mesos的涡轮引擎上
  • - 概述 - 《设计模式(极简c++版)》
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 解析带emoji和链接的聊天系统消息
  • 什么是Javascript函数节流?
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 移动端解决方案学习记录
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 容器镜像
  • # Panda3d 碰撞检测系统介绍
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #数学建模# 线性规划问题的Matlab求解
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (solr系列:一)使用tomcat部署solr服务
  • (zt)最盛行的警世狂言(爆笑)
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (过滤器)Filter和(监听器)listener
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)setTimeout 和 setInterval 的区别
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET CORE Aws S3 使用
  • .NET 指南:抽象化实现的基类