PythonShowMeTheCode(0001): 生成激活码

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): 生成激活码)