首页 > 代码库 > 20170512 Python练习册0001生成激活码
20170512 Python练习册0001生成激活码
#!/usr/bin/env python
# -*-coding:utf-8-*-
# 第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),
# 使用 Python 如何生成 200 个激活码(或者优惠券)?
import string
import random
Key_len = 20
Key_all = 200
def base_str():
return (string.ascii_letters + string.digits) #生成所有的字母和数字
def key_gen():
key_list = [random.choice(base_str()) for i in range(Key_len)]#随机选择上一个函数生成的字母和数字,生成一个长度为20的序列
return (‘‘.join(key_list))#合并序列里面的内容,不合并就是这样[‘f‘, ‘Z‘, ‘V‘, ‘V‘, ‘Z‘, ‘d‘, ‘n‘, ‘c‘, ‘1‘, ‘1‘, ‘i‘, ‘k‘, ‘b‘, ‘i‘, ‘G‘, ‘5‘, ‘d‘, ‘Z‘, ‘q‘, ‘L‘]
def key_num(num,result=None):
if result is None:#这一句估计就是用来创建一个空列表,删了这一句直接创建空列表也可以用,感觉没必要这么复杂
result = []
for i in range(num):
result.append(key_gen())#将key_gen()生成的激活码添加到这个空列表中,添加num个
return result
def print_key(num):
for i in key_num(num):
print(i)#打印出result中的每一个元素
if __name__==‘__main__‘:
print_key(Key_all)#调用函数
需要用到的知识有:转载自:https://blog.tanteng.me/2015/07/python3-ascii-letters/
本文介绍Python3中String模块ascii_letters和digits方法,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9.
示例如下:
>>> chars = string.ascii_letters + string.digits
>>> print(chars)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
生成所有字母和数字干什么?在哪个场景中会用到呢,举个例子:比如生成激活码(优惠券),激活码一般都是字母和数字组成的,首先要有一个所有字母和数字的字符串,然后随机取出几个字母或数字。
import random, string
def rand_str(num, length=7):
f = open(‘Activation_code.txt‘, ‘w‘)
for i in range(num):
chars = string.ascii_letters + string.digits
s = [random.choice(chars) for i in range(length)]
f.write(‘{0}\n‘.format(‘‘.join(s)))
f.close()
if __name__ == ‘__main__‘:
rand_str(200)
执行结果片段:
wz0dajI
25vlulV
zLHkx9Y
GGzu0Ip
RilbYKW
4WZL2IC
4syobYw
kCMky7O
oUPde55
KrMRmUX
Ct0W2Pm
wMwpPdk
ydPuy9h
Z7vo3r9
emcmQl0
GeIDKw3
PK9BLvg
z4xNdVb
I0EGA9O
YPUh5UA
69gISVt
Xun7GI3
YufPaD0
DsYZx2Q
3JfW1bh
ydHELg6
NxNMRBa
20170512 Python练习册0001生成激活码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。