驗證碼是很多網站登陸注冊的必選項,我們可以使用隨機數來實現這一功能。
需求:產生N位隨機碼,必須有數字和字母組成。
1. 需求分析:
1)隨機碼N位;
2)最少包含1位數字或者1位字母;
3)數字和字母也是隨機產生。
2. 實現思路:
- 確定數字和字母個數;
#-*-coding:utf-8 -*-
import random
tCode = 5 #隨機碼總數5
numN = random.randint(1, 4) #數字個數1~4之間
numC = tCode - numN
print (numN, numC)
執行結果:2,3(結果是隨機的)
- 產生相應的隨機數字和隨機字母;
定義字符串數字和字母,并產生相應的隨機結果:
listN = '1234567890' #數字
listC = 'abcdefghigklmnopqrstuvwxyz' #字母
for x in range(numN): #隨機數字產生
random.choice(listN)
for x in range(numC): #隨機字母產生
random.choice(listC)
- 代碼實現:
使用函數實現該需求:
函數名:genTcodes
函數參數:tCodeN,傳入產生隨機數個數
返回值:隨機碼
具體代碼如下:
#-*-coding:utf-8 -*-
import random
def genTcodes(tCodeN):
numN = random.randint(1, 4) #數字個數1~4之間
numC = tCodeN - numN
print (numN, numC)
listN = '1234567890'
listC = 'abcdefghigklmnopqrstuvwxyz'
tCodeS = "" #保存隨機碼
for x in range(numN):
tCodeS += random.choice(listN) #隨機數字
for x in range(numC):
tCodeS += random.choice(listC) #隨機字符
return tCodeS #返回隨機碼
print (genTcodes(5))
執行結果如下:
1 4
4ypwa