您好,登錄后才能下訂單哦!
題目:使用 Python 生成 200 個不重復的激活碼
編寫思路
# 激活碼一般是由26個大寫字母和10個數字任意組合而成
# 長度為12位或者16位的居多激活碼
# 一個激活碼里的字符是可以重復的,而且必須要保證激活碼是不能重復的
測試用例
# 1、隨機生成字符:數字加字母
# 2、生成200個
# 3、去重
編碼:
第一步:隨機生成16位字母跟數字的字符串
1.調用ramdom模塊,使用了import random
2.choice() 方法返回一個列表,元組或字符串的隨機項
使用了random.choice(seed),從seed中隨機獲取字符串
3.join() 方法用于將序列中的元素以指定的字符連接生成一個新的字符串
join()方法語法:str.join(sequence)
使用"".join(sa)將隨機生成的16個字符串連接在一起
import random # 生成16位字符串 def random_str(): seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" sa = [] for i in range(16): sa.append(random.choice(seed)) salt = "".join(sa) print(salt) return salt
第二步:生成200個字符串
使用for循環,調用random_str()函數
for i in range(200): L.append(random_str())
第三部:刪除重復的激活碼
1.添加刪除重復激活碼函數
當兩個激活碼相同時,打印出重復激活碼,并對該激活碼進行標識
2.刪除重復激活碼
對標識過的激活碼進行刪除
def Removal(): for i in range(200): for j in range(i+1,200): if L[i] == L[j]: print("重復的激活碼:", L[i]) L[i] = '-1' i = 0 while i < len(L): if L[i] == '-1': print("刪除重復元素", L[i]) L.remove(L[i]) i -= 1 else: i +=1
完整代碼如下:
import random # 生成16位字符串 def random_str(): seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" sa = [] for i in range(16): sa.append(random.choice(seed)) salt = "".join(sa) print(salt) return salt # 去除重復激活碼 def Removal(): for i in range(200): for j in range(i+1,200): if L[i] == L[j]: print("重復的激活碼:", L[i]) L[i] = '-1' if __name__ =="__main__": L = [] for i in range(200): L.append(random_str()) #生成兩百個激活碼 L[0] = L[1] #校驗L[0]=L[1]時,是否刪除重復 Removal() i = 0 while i < len(L): if L[i] == '-1': print("刪除重復元素", L[i]) L.remove(L[i]) i -= 1 else: i +=1
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。