第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
Answer:
-
市面上主流的激活码风格
W269-WFGW-YVCB-4J6C
可以看到是数字和字母随机组合的16位字符串
-
首先 你需要了解random的用法
记得import random
-
string.ascii_letters 所有字母的大小写
string.digits 所有数字
考虑到激活码是数字和字母的集合体 So
s=string.ascii_letters+string.digits
记得import string
-
random.sample()的用法在上文应该提到了
r=random.sample(s,16)
可以随机取出16个随机字符
但是注意返回的是['','','',~]格式
所以在这里需要用到字符串拼接
这里给出两种实现
#手动字符串拼接
string=''
for i in r:
string=string+i
#使用拼接函数
''.join(r)
-
字符串拼接完之后是W269WFGWYVCB4J6C
我们需要往其中加入‘-’
这里同样给出两种实现
#这是在拼接之前 插入'-'
r=random.sample(s,16)
for j in range(4,16,5):
r.insert(j,'-')
如果你已经拼接完成了 这时候需要用到均匀分割的知识
#如果你已经拼接完了 那么均匀分割后 再次拼接
r=random.sample(s,16)
r=''.join(r)
print r
x=[r[i:i+4] for i in range(0,len(r),4)]
print '-'.join(x)
-
下面是完整代码实现
import random
import string
s=string.ascii_letters+string.digits
'''string=''
for i in r:
string=string+i'''
for i in range(200):
r=random.sample(s,16)
for j in range(4,16,5):
r.insert(j,'-')
active = ''.join(r)
print active
'''r=random.sample(s,16)
r=''.join(r)
print r
x=[r[i:i+4] for i in range(0,len(r),4)]
print '-'.join(x)'''
-