20170512 Python练习册0001生成激活码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
示例如下:
生成所有字母和数字干什么?在哪个场景中会用到呢,举个例子:比如生成激活码(优惠券),激活码一般都是字母和数字组成的,首先要有一个所有字母和数字的字符串,然后随机取出几个字母或数字。
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生成激活码的主要内容,如果未能解决你的问题,请参考以下文章
Python+vtk 实现激光点云数据可视化学习(2021.7.12)