主程序,
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import pickle
import os
import sys
import time
import pickle
dirname = os.path.dirname(os.path.dirname(__file__))
sys.path.append(dirname)
carshop = []
pricelist = []
shop = {
'car':20000,
'iphone':6000,
'apple':20,
'orange':15,
'banana':10
}
def caradd():
while True:
for index,key in enumerate(shop.keys()):
print index,'\t',key,'\t\t',shop[key]
num = int(raw_input('请选在购买的商品ID,添加到购物车: '))
if shop.keys()[num]:
carshop.append([shop.items()[num],time.strftime("%Y-%m-%d %X", time.localtime())])
print carshop
else:
print '请选择商品编号,或者您购买的商品不存在'
name = raw_input('是否继续购物(y/n): ')
if name == 'y':
continue
else:
print '系统将返回到首页'
return True
def showcar():
for index1,key in enumerate(carshop,1):
pricelist.append(key[0][1])
print index1,key[0][0]
def price_sum():
res1 = reduce(lambda x,y:x+y,pricelist)
return res1
while True:
print '''-------欢迎访问本商城------
1 进行购物
2 查看购物车
'''
choose = int(raw_input('请按照提示信息进行输入: '))
if choose == 1:
result = caradd()
if result == 'True':
break
elif choose == 2:
if carshop:
showcar()
price = price_sum()
print '您一共够买了',price
else:
print '你还没有购物,购物车为空'
commitcar = raw_input('时候马上结算(y/n): ')
if commitcar == 'y':
username = int(raw_input('请输入信用卡账号: '))
passwd = int(raw_input('请输入信用卡密码: '))
with open('user_pass','r') as f:
data = pickle.load(f)
for k,v in data.items():
print k,v
if k == username and passwd == v[0]:
print '将从信用卡中扣除商品金额'
salary = v[1]
if price > salary:
print '信用卡额度不足,无法购买商品'
break
else:
salary_new = salary - price
print salary_new
v[1] = salary_new
with open('user_pass','w') as f:
pickle.dump(data,f)
print '支付成功,系统退出'
sys.exit()
else:
print '----------------------->'
else:
continue
使用pickle生成user_pass文件
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import pickle
dic_pick = {
123:[123,10000]
}
f = open('user_pass','w')
pickle.dump(dic_pick,f)
f.close()
###############################
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
import pickle
f = open('user_pass','r')
data = pickle.load(f)
print data