python ranndom模塊及生成驗證碼

python的random模塊用於生成隨機數,下面介紹一下random模塊的經常使用方法:python

取隨機小數: 數學計算
random.random()         用於生成一個0-1的隨機浮點數   0<=n<1.0
random.uniform(a,b)     生成一個指定範圍內的隨機浮點數, a<=n<=b
取隨機整數: 彩票 抽獎
random.randint(a,b)           取一個指定範圍內的整數 a<=n<=b
random.randrange(start,stop,step) 在指定範圍內,按基數遞增的集合內取一個隨機數,如random.randrange(10,100,2),結果至關於從[10,12,14,...98]序列中獲取一個隨機數。
從一個序列中隨機取值: 抽獎
random.choice()    從序列中隨機選擇一個返回個數爲
random.sample()    從序列中隨機選擇多個返回,返回的個數爲函數的第二個參數
亂序:
random.shuffle()  打亂一個列表的順序,在原列表的基礎上直接進行修改,節省空間
驗證碼的生成:

6位數字驗證碼:
s = ''
for i in range(6):
    num = random.randint(0,9)
    s += str(num)
print(s)

函數版本的:
def code(n=6):
    s = ''
    for i in range(n):
        num = random.randint(0,9)
        s += str(num)
    return s
print(code(4))
print(code())

6位數字+字母驗證碼:
def code(n = 6):
    s = ''
    for i in range(n):
        # 生成隨機的大寫字母,小寫字母,數字各一個
        num = str(random.randint(0,9))
        alpha_upper = chr(random.randint(65,90))
        alpha_lower = chr(random.randint(97,122))
        res = random.choice([num,alpha_upper,alpha_lower])
        s += res
    return s
print(code(4))
print(code())

進階:
def code(n = 6,alpha = True):
    s = ''
    for i in range(n):
        num = str(random.randint(0,9))
        if alpha:
            alpha_upper = chr(random.randint(65,90))
            alpha_lower = chr(random.randint(97,122))
            num = random.choice([num,alpha_upper,alpha_lower])
        s += num
    return s
print(code(4,False))
print(code(alpha=False))
相關文章
相關標籤/搜索