驗證碼的隨機生成

巴扎黑
發布: 2017-07-17 15:59:45
原創
1694 人瀏覽過

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

result = verification_code()
print(result)
登入後複製

  此方法就是使用字串的拼接產生的隨機驗證碼,其實上述方法的本質都是一樣的,可能第一種方法的效率還會更高一點,但是都實現了隨機驗證碼的功能。

二、產生帳單流水號碼的方法

 

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方法

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
登入後複製


以上是驗證碼的隨機生成的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板