Python中的random模塊
Python中的random模塊用于生成隨機(jī)數(shù)乡摹。
random.random
random.random()用于生成一個(gè)0到1的隨機(jī)符點(diǎn)數(shù): 0 <= n < 1.0
random.randint
random.randint()的函數(shù)原型為:random.randint(a, b)沦童,用于生成一個(gè)指定范圍內(nèi)的整數(shù)。其中參數(shù)a是下限,參數(shù)b是上限澎胡,生成的隨機(jī)數(shù)n: a <= n <= b
print(random.randint(12, 20)) # 生成的隨機(jī)數(shù)n: 12 <= n <= 20
print(random.randint(20, 20)) # 結(jié)果永遠(yuǎn)是20
#print random.randint(20, 10) # 該語(yǔ)句是錯(cuò)誤的述暂。下限必須小于上限。
random.randrange
random.randrange的函數(shù)原型為:random.randrange([start], stop[, step])叨橱,從指定范圍內(nèi)典蜕,按指定基數(shù)遞增的集合中 獲取一個(gè)隨機(jī)數(shù)。
# random.randrange(10, 100, 2)在結(jié)果上與 random.choice(range(10, 100, 2) 等效罗洗。
print(random.randrange(10, 100, 2)) # 結(jié)果相當(dāng)于從[10, 12, 14, 16, ... 96, 98]序列中獲取一個(gè)隨機(jī)數(shù)(既隨機(jī)選取0到100間的偶數(shù))愉舔。
print(random.randrange(0, 10, 1)) # 其中0是下限,9是上限伙菜,生成的隨機(jī)數(shù)n: 0 <= n < 10
驗(yàn)證碼功能實(shí)現(xiàn)
調(diào)用random.randint生成
代碼如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import random
def main(code_len=4):
all_code = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
last_pos = len(all_code) - 1
code = ''
for _ in range(code_len): # 確定驗(yàn)證碼長(zhǎng)度
# random.randint(a, b)生成一個(gè)指定范圍內(nèi)的整數(shù)轩缤。其中參數(shù)a是下限,參數(shù)b是上限,生成的隨機(jī)數(shù)n: a <= n <= b火的。
index = random.randint(0, last_pos)
code = code + all_code[index]
return code
if __name__ == '__main__':
code_num = int(input("請(qǐng)輸入要生成驗(yàn)證碼的個(gè)數(shù):"))
code_len = int(input("請(qǐng)輸入要生成驗(yàn)證碼的位數(shù):"))
num = 0
while num < code_num:
res_code = main(code_len)
print(res_code)
num = num + 1
調(diào)用random.randrange生成
代碼如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import random
def main(code_len=4):
all_code = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
code = ''
for _ in range(code_len): # 確定驗(yàn)證碼長(zhǎng)度
# random.randrange(a, b)生成一個(gè)指定范圍內(nèi)的整數(shù)壶愤。其中參數(shù)a是下限,參數(shù)(b - 1)是上限馏鹤,生成的隨機(jī)數(shù)n: a <= n < b征椒。
index = random.randrange(0, len(all_code))
code = code + all_code[index]
return code
if __name__ == '__main__':
code_num = int(input("請(qǐng)輸入要生成驗(yàn)證碼的個(gè)數(shù):"))
code_len = int(input("請(qǐng)輸入要生成驗(yàn)證碼的位數(shù):"))
num = 0
while num < code_num:
res_code = main(code_len)
print(res_code)
num = num + 1