zoukankan      html  css  js  c++  java
  • python练习——第1题

    原GitHub地址:https://github.com/Yixiaohan/show-me-the-code

    题目:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

    代码:

    #coding=utf-8
    import random, string
    
    number = 20 # 激活码的数量
    length = 12 # 激活码的长度
    box = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' # 激活码的组成元素
    keys = {} # 用于保存生成的激活码
    
    temp_key = ''.join(random.sample(box, length)) # 生成第一个激活码
    k = 0 # 激活码的索引
    keys[k] = temp_key
    while(True):
        temp_key = ''.join(random.sample(box, length))
        for j in list(keys.keys()): # 判断新生成的激活码是否和以前的相同
            if keys[j] == temp_key: # 如果相同则重新生成
                break
            elif j == (len(keys) - 1): # 如果新生成的激活码和之前的激活码都不一样,则将新激活码加入keys
                k += 1
                keys[k] = temp_key
            else:
                continue
        if k == number - 1: # 已经生成足够的激活码,则结束
            break
    
    for i in keys:
        print(keys[i])
    

    效果如下:

    分析:
    这道题主要就是需要懂得如何将字母和数字以随机的方式组合起来,还有就是要保证生成的激活码没有重复的。因为每生成一个新激活码都要和已有的其他激活码比较是否相同,所以程序时间复杂度为O(n^2),比较慢。

    在网上看见另外一种简便的方法:

    import uuid
    
    uuids = []
    for i in range(200):
    	uuids.append(uuid.uuid1())
    print uuids
    
  • 相关阅读:
    Orcle 导入数据eurusd.ctl
    Maven系列2pom.xml 配置详解
    UML关联&泛化的区别
    maven 创建工程
    maven 打包
    jprofiler安装和配置
    设计模式出现之前的几大原则
    检查启动情况linux
    领域模型
    解压命令tar
  • 原文地址:https://www.cnblogs.com/Xlgd/p/12321419.html
Copyright © 2011-2022 走看看