Python3基礎-程式碼閱讀系列—優惠碼生成

既生喻何生亮發表於2018-10-30

程式碼展示

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次。

程式碼來源

github

相關文章