验证码的随机生成


本文摘自php中文网,作者巴扎黑,侵删。

1、借助列表

1

2

3

4

5

6

7

8

9

10

11

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()方法,生成了随机验证码。下面我们来尝试也生成大写验证码的方法。

1

2

3

4

5

6

7

8

9

10

11

12

13

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、字符串拼接

1

2

3

4

5

6

7

8

9

10

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 += stringreturn code

 

result = verification_code()

print(result)

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

二、生成账单流水号的方法

1

2

3

4

5

6

7

import datetime,time

 

def serial_number():

    serial = "{0}{1}".format(datetime.datetime.now().strftime("%Y%m%d%H%M%S"),str(int(time.time())))return serial

 

message = serial_number()

print(message)

  账单流水号是由日期datetime模块和time模块构成,由于流水号就是当时购物的时间串号,而且永远不会重复。

三、利用range方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import random

def generate_verification_code(len=6):

    ''' 随机生成6位的验证码 '''

    # 注意: 这里我们生成的是0-9A-Za-z的列表,当然你也可以指定这个list,这里很灵活

    # 比如: code_list = ['P','y','t','h','o','n','T','a','b'] # PythonTab的字母

    code_list = []

    for i in range(10): # 0-9数字

        code_list.append(str(i))

    for i in range(65, 91): # 对应从“A”到“Z”的ASCII码

        code_list.append(chr(i))

    for i in range(97, 123): #对应从“a”到“z”的ASCII码

        code_list.append(chr(i))

    myslice = random.sample(code_list, len# 从list中随机获取6个元素,作为一个片断返回

    verification_code = ''.join(myslice) # list to string

    return verification_code

以上就是验证码的随机生成的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python介绍嵌套 json 秒变 dataframe!

Python 中容易混淆的概念--迭代器与生成器

介绍Python描述符的意义

Python是开源的吗

Python中字符串可以遍历吗

Python怎么返回矩阵行列

pycharm怎么设置背景颜色

爬虫Python多久可以学会

Python json模块如何使用

Python中变量和数据类型介绍

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...