0.說明
在網路上各種平台上登陸時,都會看到各種各樣的驗證碼,大部分都是字母+數字的隨機驗證碼,下面來主要是通過python生成乙個可以包含大小寫字母和數字的隨機驗證碼。
1.思路
在python中,內建函式chr可以將相應的0~255的數字轉換為相應的字元,而ord則可以將字元碼轉換為相應的ascii值,如下:
>>> chr(65)
'a'>>>
>>> ord('a')
65
不過這裡我們主要使用chr,即只要可以隨機生成大小寫字母所對應的ascii值,就可以通過chr函式將其轉換為對應的大小寫字母,從而拼接成為隨機驗證碼。
2.大小寫字母所對應的ascii值
通過查詢ascii碼表可以知道:
大寫字母ascii值範圍:65~90
小寫字母ascii值範圍:97~122
3.python中的random模組
random模組中最常用的函式介紹如下:
>>> random.randint(1, 2)
2>>> random.randint(1, 2)
2>>> random.randint(1, 2)
2>>> random.randint(1, 2)
1
>>> random.randrange(1,3)
1>>> random.randrange(1,3)
2>>> random.randrange(1,3)
2
>>> random.uniform(1, 2)
1.2845602051034062
>>> random.uniform(1, 2)
1.0178567905561313
>>> random.uniform(1, 2)
1.8440532614481977
>>> random.random()
0.04360809434722357
>>> random.random()
0.7386566820354784
>>> random.random()
0.8564193451546396
>>> random.choice('xpleaf')
'l'>>> random.choice('xpleaf')
'f'>>> random.choice('xpleaf')
'f'>>> random.choice([1, 2, 3])
1>>> random.choice([1, 2, 3])
1>>> random.choice([1, 2, 3])
3
在接下來的程式中,主要使用randint和choice兩個函式。
4.用python生成隨機驗證碼
下面的例子中生成的驗證碼可能包含大寫字母、小寫字母、數字,或者是其中的一種,或者是兩種的組合,也或者是三種的組合。
完整**如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import random
def generate(check_num=4):
temp = ''
for i in range(check_num): # check_num為需要迴圈的次數,也就是需要生成驗證碼的個數,預設為4
choice = random.randint(1, 3) # 生成1到3的隨機數
if choice == 1: # 如果choice為1,則隨機驗證碼的值為數字
temp += random.choice('0123456789')
elif choice == 2: # 如果choice為2,則隨機驗證碼的值為大寫字母
num = random.randint(65, 90)
temp += chr(num)
elif choice == 3: # 如果choice為3,則隨機驗證碼的值為小寫字母
num = random.randint(97, 122)
temp += chr(num)
return temp
# 測試
temp1 = generate()
print('生成4位隨機驗證碼:', temp1)
temp2 = generate(5)
print('生成5位隨機驗證碼:', temp2)
te*** = generate(6)
print('生成6位隨機驗證碼:', te***)
程式執行結果如下:
生成4位隨機驗證碼: 8xyg
生成5位隨機驗證碼: z35nu
生成6位隨機驗證碼: 8oall9
5.更進一步的使用
希望可以幫到有需要的朋友。
隨機驗證碼 python
功能 隨機驗證碼 日期 01 22 2019 注意 randrange 返回乙個遞增集合的隨機數,使用它必須匯入random包 randint 返回乙個隨機數 chr 返回乙個字元,以整數為引數 import random def check code check code for i in ran...
隨機驗證碼的實現
隨機驗證 隨機生產6位數字 漢字 大小寫字母並且進行驗證 隨機生成數字 var s math.floor math.random 10 隨機生成漢字 var string 中國語言文本網將由教育部語言文字應用研究所主辦和執行管理,新 訪問入口更改 var s string.charat math.f...
隨機驗證碼
function window,document if object.prototype.tostring.call options object object else this options.numarr 0,1,2,3,4,5,6,7,8,9 split this options.lette...