Python随机生成验证码的两种方法

xiaoxiao2021-02-28  117

Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法

方法一:

利用range方法,对于range方法不清楚的同学,请参考文章《python开发的range()函数》

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # -*- coding: utf-8 -*- 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

方法二:

利用randint方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # -*- coding: utf-8 -*- import  random def  generate_verification_code_v2():      ''' 随机生成6位的验证码 '''      code_list  =  []      for  i  in  range ( 2 ):          random_num  =  random.randint( 0 ,  9 )  # 随机生成0-9的数字          # 利用random.randint()函数生成一个随机整数a,使得65<=a<=90          # 对应从“A”到“Z”的ASCII码          a  =  random.randint( 65 ,  90 )          b  =  random.randint( 97 ,  122 )          random_uppercase_letter  =  chr (a)          random_lowercase_letter  =  chr (b)          code_list.append( str (random_num))          code_list.append(random_uppercase_letter)          code_list.append(random_lowercase_letter)      verification_code  =  ''.join(code_list)      return  verification_code

测试:

1 2 3 4 code  =  generate_verification_code( 6 ) code2  =  generate_verification_code_v2() print  code print  code2

输出结果:

1 2 Glc5Tr Hr6t7B

我个人更倾向于第一种方法,更加灵活,可以随意设置验证码长度。

文章转自:http://www.pythontab.com/html/2015/pythonjichu_1119/985.html

转载请注明原文地址: https://www.6miu.com/read-52326.html

最新回复(0)