[Python] 生成200个激活码(优惠券)

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

思路:
首先要弄清楚激活码的构成,不同软件应用生成的激活码都不同,但相同的是,生成的激活码是字母和数字的随机组合,可能是大写,也可能是小写,所以激活码是26个大小写字母和10个数字的随机组合。以生成一个16位的激活码(区分大小写)为例,必然会用到python 的random模块,可以将26个大小写字母和10个数字放在一个集合中,用random随机去取集合中的元素。Random模块相关可以看链接。

random中有一个choice方法,随机选取一个元素,sample方法是随机生成一组元素,在生成激活中可以用到。

代码如下:

#coding=utf-8
import random
list=[]
#生成26个大写的字母
for x in range(65,91):
    a=str(chr(x))  #生成对应的ASCII码对应的字符串
    list.append(a)
#生成26个小写字母
for x in range(97,123):
    a=str(chr(x))  #生成对应的ASCII码
    list.append(a)     
#生成10个数字
for x in range(10):
    list.append(str(x))
'''
def gen_code():
    a=random.sample(list,16)
    print a
'''
#生成16位激活码
def gen_code():
    s=''
    for x in range(16):
        a=random.choice(list)
        s=s+a
    print s

#生成200个激活码
for x in range(200):
    gen_code()

`
生成16位激活码的时候,也可以用sample方法,选取16个元素,但sample的返回仍是一个list列表,需要遍历连接起来,在进行连接的时候,只有字符串可以通过+连接,所以在生成字母和数字的同时,我将其转换成字符串再保存在list列表中。
有的字符串四五位激活码中间用“-”连接,感觉用sample方法选取元素更方便一点。

你可能感兴趣的:(python)