生成随机验证码的方法

1、借助列表

import random

def random_code():
    random_list = []
    for i in range(4):
        ra = random.randrange(4)
        if ra == i:
            random_list.append(chr(random.randrange(97,122)))
        else:
            random_list.append(str(random.randrange(0,9)))
    code = "".join(random_list)
    return code

result = random_code()
print(result)

  上述代码实现了随机验证码的功能,但是只能生成包含小写字母的随机验证码;并且我们也是借助列表完成的,字符串的拼接加上列表,字符串jion()方法,生成了随机验证码。下面我们来尝试也生成大写验证码的方法。

import random

def random_code():
    random_list = []
    for i in range(4):
        ra = random.randrange(4)
        if ra == i:
            random_list.append(chr(random.randrange(97,122)))
        elif ra > i:
            random_list.append(str(random.randrange(0,9)))
        else:
            random_list.append(chr(random.randrange(65,90)))
    code = "".join(random_list)
    return code

result = random_code()
print(result)

  由于数据之间有三种关系,大于,小于,等于,这样把每种情况都进行分析,就能生成三种随机验证码;当等于的时候生成小写验证码,等大于的时候生成数字,当小于的时候生成大写字母验证码,这样就实现了我们在网站上面常见的验证码的形式。

2、字符串拼接

import random

def verification_code():
    code = ""
    for i in range(1,5):
        ra = random.randint(1,4)
        if ra == i:
            string = chr(random.randrange(97,122))
        elif ra > i:
            string = chr(random.randrange(65,90))
        else:
            string = str(random.randint(0,9))
        code += string

    return code

result = verification_code()
print(result)

  此方法就是使用字符串的拼接生成的随机验证码,其实上述方法的本质都是一样的,可能第一种方法的效率还会更高一点,但是都实现了随机验证码的功能。

import random

def random_code():    random_list = []    for i in range(4):        ra = random.randrange(4)        if ra == i:            random_list.append(chr(random.randrange(97,122)))        else:            random_list.append(str(random.randrange(0,9)))    code = "".join(random_list)    return code

result = random_code()print(result)
时间: 2024-10-12 16:56:39

生成随机验证码的方法的相关文章

pillow实例 | 生成随机验证码

1 PIL(Python Image Library) PIL是Python进行基本图片处理的package,囊括了诸如图片的剪裁.缩放.写入文字等功能.现在,我便以生成随机验证码为例,讲述PIL的基本用法. PIL库似乎已经被人抛弃,就为更新,上次使用时竟然不能用show()直接将图片,在系统默认的图片管理器中打开.好在pillow,一个PIL的方言,将PIL继续维护了下去. 生成验证码一般需要对写入的文字进行旋转.扭曲.变色等一系列操作,才能避免计算机算法的识别. 因此定义一个生成验证码的类

Django中生成随机验证码

Django中生成随机验证码 1.html中a标签的设置 1 <img src="/get_validcode_img/" alt=""> 2.views中的get2.views中的getvalidcode_img设置 导入文件 1 import json 2 import os 3 import random 4 from django.contrib import auth 5 from django.shortcuts import render,

学习python:实例2.用PIL生成随机验证码

效果: 代码: # 生成随机验证码图片 import string from random import randint, sample from PIL import Image, ImageDraw, ImageFont, ImageFilter # Image 负责处理图片 # ImageDraw 画笔 # ImageFont 文字 # ImageFileter 滤镜 # 定义变量 img_size = (150,50)        # 定义画布大小 img_rgb = (255,255

Python 生成随机验证码

Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # img.show()  # 保存在本地 with open('code.png','wb') as f

生成随机验证码工具类

生成随机验证码 package com.web; //验证码生成处理类 import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.geom.Line2D; import java.awt.ima

android 客户端生成随机验证码的实现

由于项目中要用到验证码,自己找了些资料,试着就把这个验证码给做了出来,代码不是很多,比较的简单,下面给大家看看我是怎么实现该功能的: 源码地址下载:http://download.csdn.net/detail/u014608640/7268905 首先当然是写XML咯,贴上代码 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" andr

如何生成随机验证码

Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1. 创建图片 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255)) # 在图片查看器中打开 # img.show() # 保存在本地 with open('code.png','wb') as f: img.save(f,format='

生成随机验证码

生成随机验证码实例 import random a=[] c ='' for i in range(6): if i == random.randrange(1,4): a.append(str(random.randint(1,9))) else: temp = random.randint(65,90) a.append(chr(temp)) print a b="".join(a) print b for i in a: c += str(i) print c 输出为 ['D',

[三卷天书]记一个asp.net生成两个日期范围内生成随机时间的方法

想网上找个生成随机天数的方法找不到,后面只得自己写了,贴给大家方便使用 思路:算两个日期的相差天数,然后在0到相差天数的范围内生成随机数,再用结束时间的天数部分减去这个随机数,代码: /// <summary> /// (在两个时间范围内)生成随机日期 /// </summary> /// <param name="startime">开始时间</param> /// <param name="endtime"&