1. 程式人生 > 程式設計 >使用Python生成200個啟用碼的實現方法

使用Python生成200個啟用碼的實現方法

題目:使用 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,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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。