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

来源:互联网 发布:海文考研怎么样知乎 编辑:程序博客网 时间:2024/05/01 23:31

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

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

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

代码如下:

#coding=utf-8import randomlist=[]#生成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方法选取元素更方便一点。

阅读全文
0 0