溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Python生成200個(gè)激活碼的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2020-09-24 16:41:38 來源:腳本之家 閱讀:307 作者:我愛學(xué)python 欄目:開發(fā)技術(shù)

題目:使用 Python 生成 200 個(gè)不重復(fù)的激活碼

編寫思路

# 激活碼一般是由26個(gè)大寫字母和10個(gè)數(shù)字任意組合而成
# 長度為12位或者16位的居多激活碼
# 一個(gè)激活碼里的字符是可以重復(fù)的,而且必須要保證激活碼是不能重復(fù)的

測試用例

# 1、隨機(jī)生成字符:數(shù)字加字母
# 2、生成200個(gè)
# 3、去重

編碼:

第一步:隨機(jī)生成16位字母跟數(shù)字的字符串

1.調(diào)用ramdom模塊,使用了import random

2.choice() 方法返回一個(gè)列表,元組或字符串的隨機(jī)項(xiàng)

使用了random.choice(seed),從seed中隨機(jī)獲取字符串

3.join() 方法用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串

join()方法語法:str.join(sequence)

使用"".join(sa)將隨機(jī)生成的16個(gè)字符串連接在一起

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個(gè)字符串

使用for循環(huán),調(diào)用random_str()函數(shù)

   for i in range(200):
     L.append(random_str()) 

第三部:刪除重復(fù)的激活碼

1.添加刪除重復(fù)激活碼函數(shù)

當(dāng)兩個(gè)激活碼相同時(shí),打印出重復(fù)激活碼,并對該激活碼進(jìn)行標(biāo)識

2.刪除重復(fù)激活碼

對標(biāo)識過的激活碼進(jìn)行刪除

def Removal():
  for i in range(200):
    for j in range(i+1,200):
      if L[i] == L[j]:
        print("重復(fù)的激活碼:", L[i])
        L[i] = '-1'
i = 0
while i < len(L):
  if L[i] == '-1':
    print("刪除重復(fù)元素", 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

# 去除重復(fù)激活碼
def Removal():
  for i in range(200):
    for j in range(i+1,200):
      if L[i] == L[j]:
        print("重復(fù)的激活碼:", L[i])
        L[i] = '-1'


if __name__ =="__main__":
  L = []
  for i in range(200):
    L.append(random_str()) #生成兩百個(gè)激活碼
  L[0] = L[1] #校驗(yàn)L[0]=L[1]時(shí),是否刪除重復(fù)
  Removal()
  i = 0
  while i < len(L):
    if L[i] == '-1':
      print("刪除重復(fù)元素", L[i])
      L.remove(L[i])
      i -= 1
    else:
      i +=1

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI