#!/usr/bin/env python
# _*_ encoding:utf-8 _*_
# author:snate
import random
def generate_auth_code():
auth_code_list =[]
for i in range(6): # 要生成几个验证码循环几次
num = random.randint(0,5) # 随机生成0到5之间的数字
if num ==1 or num == 4: # 若生成的数字为1,4,生成0-9的数字
code1= random.randrange(0,9) #
auth_code_list.append(str(code1))# 加入验证码列表
else:
code2 = random.randrange(65,90) # 若生成的数字不是1,4生成65,90之间的数字,并转化成对应的ascii码。
code2 = chr(code2).lower()
auth_code_list.append(code2) # 将字母加入到验证码列表
return "".join(auth_code_list) # 将列表转化成字符串
print(generate_auth_code())

基本原理是使用random,随机生成数字:

1.要几个字符就循环几次

2.随机生成一个数字,定义如果这个数字为其中某值X时,再随机一个0-9中间的数字。为什么0-9呢,因为10的话就占了两个字符了........

3.循环时,随机数字如果不为X时,生成一个65-90之间的数字,然后使用char()函数转化为ascii列表中对应的字母,当然就是大写的A-Z啦,然后将大写转化陈小写就可以。

4.将生成的字符加入列表,最后将列表拼接成字符串就O了、

Python中简化的验证码功能实现的更多相关文章

  1. python中简化的验证码功能

    验证码一般用来验证登陆.交易等行为,减少对端为机器操作的概率,python中可以使用random模块,char()内置函数来实现一个简单的验证码功能. import random def veri_c ...

  2. python中pyperclip库的功能

    python3中pyperclip库的功能 作用就是复制.粘贴 例子 import pyperclip pyperclip.copy('Hello world!') pyperclip.paste() ...

  3. Python中raw_input() & input() 的功能对比

    raw_input的功能是方便的从控制台读入数据.  input与raw_input都是Python的内建函数,实现与用户的交互,但是功能不同. 一.raw_input 下面介绍让raw_input的 ...

  4. Python中str字符串的功能介绍

    Str字符串的功能介绍 1. 字符串的操作 字符串的连接操作 符号: + 格式:str1 + str2 例如:str1 = 'I Love' str2 = 'You!' print(str1 + st ...

  5. python中time模块常用功能

    import time time模块提供了大量对时间进行处理的方法 time.time() # 获取当前时间戳,得到自1970年开始的秒数 >>>time.time() 155487 ...

  6. python random 模块及验证码功能

    random模块 import random random.random() random.randint(1,3) # 1-3的整数包括3 import random print(random.ra ...

  7. Python使用Timer实现验证码功能

    from threading import Timer import random class Code: def __init__(self): self.make_cache() def make ...

  8. Python中的切片操作

    python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>& ...

  9. Django学习笔记(17)——BBS+Blog项目开发(1)验证码功能的实现

    本文主要学习验证码功能的实现,为了项目BBS+Blog项目打下基础. 为了防止机器人频繁登陆网站或者破坏分子恶意登陆,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是“Com ...

随机推荐

  1. Python3基础 逻辑运算 and or not 示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. Go第十一篇之编译与工具

    Go 语言的工具链非常丰富,从获取源码.编译.文档.测试.性能分析,到源码格式化.源码提示.重构工具等应有尽有. 在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试报告的 ...

  3. ACM-ICPC 2018 徐州赛区网络预赛H Ryuji doesn't want to study(树状数组)题解

    题意:给你数组a,有两个操作 1 l r,计算l到r的答案:a[l]×L+a[l+1]×(L−1)+⋯+a[r−1]×2+a[r] (L is the length of [ l, r ] that ...

  4. hdoj-2028-Lowest common multiple plus

    题目:Lowest common multiple plus 代码: #include<stdio.h> int common(int a,int b)//计算最大公约数 { int c= ...

  5. 进制转换 hdoj-2031

    进制转换,原题目:hdoj-2031 题目描述: 输入两个整数,十进制数n(32位整数)和进制r(2<=r<=16 r!=10),求转换后的数. 输入: 7 2 23 12 -4 3 输出 ...

  6. MVC ---- 如何使用Predicate以及如何自定定义Predicate委托

    微软公司提供只能返回bool值,接受一个参数的委托类型(Predicate). //Predicate委托 public static class PredicateDemo{ //内置方法 publ ...

  7. Spring Boot入门——文件上传与下载

    1.在pom.xml文件中添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...

  8. Java线程池队列吃的太饱,撑着了咋整?java 队列过大导致内存溢出

    Java的Executors框架提供的定长线程池内部默认使用LinkedBlockingQueue作为任务的容器,这个队列是没有限定大小的,可以无限向里面submit任务. 当线程池处理的太慢的时候, ...

  9. yii CFormModel中的rules验证机制

    public function rules() { return array( array('username, password', 'required'), array('rememberMe', ...

  10. 013 - 关于GC root: Native Stack | MAT分析

      Question:   I have some third library code that I run and after some time I run into OutOfMemoryEr ...