美文网首页
PythonShowMeTheCode(0001): 生成激活码

PythonShowMeTheCode(0001): 生成激活码

作者: tyrone_li | 来源:发表于2016-08-08 16:01 被阅读0次

    1. 题目

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

    2. 生成结果

    YB82-U5DK-698Y-EZLP-XM5I
    M97E-FP5O-U4DF-OVFJ-LH79
    HR01-EOE5-WJU2-KF2N-K1L5
    

    需要生成一串由大写字母和数字组成的不重复字符串,每隔4个以 ‘-’ 隔开。

    3. 具体实现

    实现思路a:利用Python的random库随机生成大写字母和数字,拼接起来。

    # -*- coding:utf-8 -*-
    import random
    
    def rand_code(num, length):
        result = []
        sequence = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
        for i in range(0, num):
            code_str = [random.choice(sequence) for k in range(length)]
            code_str = ''.join(code_str)
            for j in range(4, length, 5):
               code_str = code_str[:j] + '-' + code_str[j:]
            if code_str not in result:
                result.append(code_str)
        return result
    
    if __name__ == '__main__':
        print(rand_code(200, 20))
    

    实现思路b:利用Python的uuid库直接生成激活码。

    # -*- coding:utf-8 -*-
    import uuid
    
    def create_code(num, length):
        result = []
        for i in range(0, num):
            code_str = str(uuid.uuid4()).replace('-', '')[:length].upper()
            for j in range(4, length, 5):
                code_str = code_str[:j] + '-' + code_str[j:]
            if code_str not in result:
                result.append(code_str)
        return result
    if __name__ == '__main__':
        print(create_code(200, 20))
    

    相关文章

      网友评论

          本文标题:PythonShowMeTheCode(0001): 生成激活码

          本文链接:https://www.haomeiwen.com/subject/kjcrsttx.html