来源 自 https://github.com/Yixiaohan/show-me-the-code
注意 插入数据库记录的时候, cur.execute("insert into coupon (id,number) values ('%s','%s')"%(i,item[i])), 要用双引号,不然会报错, 类似,Traceback (most recent call last):
File "./py0002.py", line 44, in <module>
cur.execute('insert into coupon (id,number) values (%s,%s)',(i,item[i]))
sqlite3.OperationalError: near "%": syntax error。
题目
第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
第 0002 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。然后读取数据库,查看是否是期望的行为.
cat py0002.py
#!/usr/bin/python
import random
import string
import sqlite3
'''
##input :digit the length of the coupon
def youhui_creator(digit):
youhui=''
for item in range(digit):
##each time random generate one letter or number from 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
youhui+= random.choice(string.ascii_uppercase+string.digits)
return youhui
def two_hundred_youhui():
youhui =''
count = 1
for i in range(200):
youhui+='coupon no.'+str(count)+' '+youhui_creator(12)+'\n'
count=count+1
#将生成的优惠券保存到文件里面
with open('coupon.txt','w')as f:
f.write(youhui)
two_hundred_youhui()
'''
record=[]
item=['1']*200
#读取文件里面的优惠券,并把文件里面保存的优惠券写入数据库
with open('coupon.txt','r')as f:
L=f.readlines()
count=1
for content in L:
content.replace('\n','')
if (count<10):
record=content[len('coupon no.')+(2):]
elif(count>=10 and count<100):
record=content[len('coupon no.')+(3):]
else:
record=content[len('coupon no.')+(4):]
item[count-1]=record
print item[count-1]
count=count+1
conn=sqlite3.connect('coupon.db')
cur=conn.cursor()
cur.execute('create table if not exists coupon (id varchar(10) primary key,number varchar(20))')
for i in range(200):
cur.execute("insert into coupon (id,number) values ('%s','%s')"%(i,item[i]))
#cur.execute('insert into coupon (id,number) values (%s,%s)'%(i,item[i]))
for i in range(200):
record=cur.execute("select * from coupon where id =('%s')"%(i))
print cur.fetchall()
##close cursor
cur.close()
## commit the transaction
conn.commit()
##close connection
conn.close(