python练习001及002
来源:互联网 发布:tomcat 多域名绑定 编辑:程序博客网 时间:2024/06/03 11:43
第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
第 0002 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。
首先,001题思路如下:
在百度过后选择了一种验证方式,就是随机生成15位数字加字母的组合,以L为区分线,主键为0-200的数字,不够的在左边补0,然后加入到之前生成的验证码中(这里我设主键为4位数字)。总体就是一个激活码了。
代码如下:
#coding=utf-8import randomimport stringclass LengthError(ValueError): def __init__(self, arg): self._arg = argdef code_char(length): poolOfChar = string.ascii_letters + string.digits # random 库中的 randint(inf, sup) 函数可以在指定的范围内产生一个随机整数; # choice(sequence) 可以在一个有序的类型中(比如 list、tuple 或 string)随机选取一个元素。 randomChar = lambda x, y: "".join([random.choice(x) for i in range(y)]) return randomChar(poolOfChar, length)#验证主键长度是否大于你需要的长度,不够则在左边补0,多了则报错def pad_zero_toLeft(inputStr, totalLen): strLen = len(inputStr) if strLen > totalLen: raise LengthError('生成的太长了。') else: return '0' * (totalLen - strLen) + inputStr#将随机生成的验证码和主键合在一起,并将主键作为数据库中的Id和激活码作为列表一起返回def code_fact(number = 200, length = 15, key = 4): flg = 'L' for i in range(number): try: yield [i ,code_char(length) + flg + pad_zero_toLeft(str(i), key)] except LengthError: print 'number is larger than the lenth of Key'#如果是此模块自己运行则运行,若是其他导入此模板则不运行。if __name__ == '__main__': for code in code_fact(): print code
002很简单就不讲思路了,代码如下:
import mysql.connectorimport test001conn = mysql.connector.connect(user='root', password='123', database='test', use_unicode=True)cursor = conn.cursor()if __name__ == '__main__': for i in test001.code_fact(): cursor.execute('insert into code(id, _key) values (%s, %s)', i)conn.commit()cursor.close()conn.close()
本人才疏学浅,仅供参考,如有疑问或建议,欢迎提出,一起进步。
阅读全文
0 0
- python练习001及002
- python 文本写入及文本替换练习
- python练习(遍历所有文件夹及文件)
- Python HTMLTestRunner练习及生成报告的注意事项
- 《python机器学习及实践》书籍代码练习
- spark上使用scala及python编程练习
- 【Python初学笔记】no.2字典和函数及练习
- python练习
- python练习
- Python练习
- python练习
- python练习
- #python#练习
- python 练习
- 【python练习】
- python练习
- python练习
- python练习
- 为什么 qt 成为 c++ 界面编程的第一选择?
- iOS11调用百度地图出现自定义 大头针不显示的问题
- JavaScript学习之Android与JS交互
- 怎么装easy_install
- jsp 中<c:forEach>的用法 获取items具体值的用法
- python练习001及002
- java 实用---去掉鸡肋的jsp预览
- Android手机可以通过adb执行按键操作
- target和currentTaeget填坑
- dubbo-9 hodson的安装与配置
- MVVM模式及与MVP和MVC的区别
- gcc 编译遇到 pcap 库问题
- mysql分区功能详细介绍,以及实例
- html滚动条样式