程式碼展示
import random
# 生成200組長度為8的優惠碼,字典集是數字加字母
def generate_key(number=200, length=8):
char_set = "abcdefghijklmnopqrstuvwxyz0123456789"
result = ""
for i in range(0, number):
temp = ""
while(temp == ""):
for j in range(0, length):
temp = temp+char_set[random.randint(0, 35)]
# 判斷新生成的優惠嗎是否與之前的重複
if(result.find(temp) == -1):
result = result + "%d " % (i+1) + temp
else:
temp = ""
result = result+`
`
return result
def file_write():
fp = open("result.txt", `w`)
fp.writelines(generate_key())
fp.close()
if __name__ == `__main__`:
file_write()
知識點理解
random庫
random.randint(0,35)
隨機數中使包括0和35,或者其中的一個。
在python中的random.randint(a, b)
用於生成一個指定範圍內的整數。其中引數a是下限,引數b是上限,生成的隨機數n: a <= n <= b
print(random.randint(12, 20)) #生成的隨機數n: 12 <= n <= 20
print(random.randint(20, 20)) #結果永遠是20
print(random.randint(20, 10)) #該語句是錯誤的。因為下限必須小於上限
字串的find()方法
String.find(字串) 方法檢測字串中是否包含子字串str,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內。
如果包含子字串返回開始的**索引值**
如果不包含字串則返回-1
迴圈結構
內迴圈:
生成包含8個字元的字串,並且不重複,儲存在結果result中
外迴圈:
功能是將內迴圈操作200次。