使用Python生成200个激活码的实现方法


Posted in Python onNovember 22, 2019

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现自动登录人人网并访问最近来访者实例
Sep 26 Python
python在Windows8下获取本机ip地址的方法
Mar 14 Python
详解python之简单主机批量管理工具
Jan 27 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
详解python之协程gevent模块
Jun 14 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
详解Django CAS 解决方案
Oct 30 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Python分类测试代码实例汇总
Jul 23 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
python二维图制作的实例代码
Dec 03 Python
Python的几种主动结束程序方式
Nov 22 #Python
python实现超市商品销售管理系统
Nov 22 #Python
python实现二分类的卡方分箱示例
Nov 22 #Python
python的等深分箱实例
Nov 22 #Python
基于python实现学生信息管理系统
Nov 22 #Python
基于python cut和qcut的用法及区别详解
Nov 22 #Python
python创建学生成绩管理系统
Nov 22 #Python
You might like
PHP memcache扩展的三种安装方法
2009/04/26 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
JS数学函数Exp使用说明
2012/08/09 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Selenium定位元素操作示例
2018/08/10 Python
Django分页功能的实现代码详解
2019/07/29 Python
python面向对象 反射原理解析
2019/08/12 Python
python解析多层json操作示例
2019/12/30 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
Java面向对象面试题
2016/12/26 面试题
库房保管员岗位职责
2014/04/07 职场文书
环保倡议书怎么写
2014/05/16 职场文书
法律专业求职信
2014/05/24 职场文书
警告通知
2015/04/25 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python
配置Kubernetes外网访问集群
2022/03/31 Servers
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫