Python 练习册,每天一个小程序-第 0001 题

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

Answer:

-

市面上主流的激活码风格

W269-WFGW-YVCB-4J6C

可以看到是数字和字母随机组合的16位字符串

-

首先 你需要了解random的用法

记得import random

Python-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,'-')
如果你已经拼接完成了 这时候需要用到均匀分割的知识

python如何优雅地均匀地分割字符串

#如果你已经拼接完了 那么均匀分割后 再次拼接
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)'''

-

python-0001

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值