python 编写购物车程序

来源:转载

1、判断用户是否有金额,没有要求用户输入;2、显示商品列表,用户可以根据需求输入:商品编号、显示购物车、显示余额、结算等;
3、(1):输入free,显示用户剩余金额;
   (2):输入list,显示购物车列表;
   (3):输入all,进行结算;
结算:1、会判断用户购物车是否有商品,没有则退出;
 2、购物车有商品会提示用户是否购买:
Y或y:购买商品,显示花费和剩余;
N或n:退出,清空购物车,显示余额并退出。
其它输入:退出,清空购物车,显示余额并退出。
   (4):输入商品编号:
1、判断用户余额是否可以购买次商品,不能购买给出提示;
2、用户可以购买商品,要求用户输入购买数量,如果购买数量超过用户余额,给你不能购买提示。
3、用户余额可以购买对应商品,把商品加入购物车,并显示商品列表。
4、用户只有在输入all的时候,才能去购物车结算商品。
流程图如下:

代码如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-__author__ = 'weibinf'#定义空的购物列表:cart = []#查询用户余额import osdef money(): filename = r'C:/Users/Administrator/Desktop/money.txt' if os.path.exists(filename): m = open('C:/Users/Administrator/Desktop/money.txt','r') mon = m.readline() m.close() mon = int(mon) return mon else: exitt = False while not exitt: aa = raw_input("/033[31m请输入你的工资: /033[0m").strip() if aa.isdigit(): mon = int(aa) exitt = True else: print "请输入正确的数字。。" return mon#保存用户输入的余额def free_money(x): a = open('C:/Users/Administrator/Desktop/money.txt','w') a.write('%s'%x) a.close()#定义余额变量wage = money()wage1 = wage #定义总余额shoping_money3 = 0 #定义用户总共消费#定义商品列表:shop = [ ["iphone6s",5288], ["iphone6s plus",6088], ["mac book",8888], ["apple",5], ["乐视1S",1099]]#循环显示购物信息:while True: #打印出商品列表和价格: for index,p in enumerate(shop): print index,p[0],p[1] #获取用户输入: shoping = raw_input("/033[31m请输入商品编号,结算请输入all,显示购物车请输入:list,显示余额请输入:free : /033[0m").strip() #判断用户输入是否合法 if shoping.isdigit(): shoping = int(shoping) shoping_money = shop[shoping][1] if shoping_money < wage: #判断用户是否可以购买 while True: num = raw_input("请输入购买数量: ").strip() if not num.isdigit(): print "/033[31m请正确输入商品数量。。/033[0m" else: num = int(num) if num == 0: break else: shoping_money2 = shoping_money * num #判断商品数量的价钱 if shoping_money2 < wage: #判断用户是否可以购买 cart.append(shop[shoping][0]) #把商品名称添加到购物车 cart.append(num) #把商品数量添加到购物车 print "/033[31m您的商品已经加入购物车 %s 数量:%s /033[0m"%(shop[shoping][0],num) wage = wage - shoping_money2 #算出用户剩余金额 shoping_money3 +=shoping_money2 #算出用户总消费金额 break else: print "/033[31m你的工资买不起%s个%s /033[0m"%(num,shop[shoping][0]) break elif shoping_money > wage: #商品不能购买的提示 print "/033[31m你的工资还买不起此商品: %s/033[0m" %shop[shoping][0] else: #商品不能购买的提示 print "/033[31m你的工资太少了,还是去努力赚钱吧。。/033[0m" break elif shoping == "list": #显示购物列表 print "/033[31m----------shopping list----------/033[0m" num = 0 aa = len(cart) bb = aa / 2 for x in range(bb): print cart[num],"/033[31m数量:/033[0m",cart[num+1] num+=2 print "/033[31m---------------------------------/033[0m" elif shoping == "free": #显示剩余金额 if not len(cart): print "/033[31m你还没有购物,剩余:%s/033[0m" %wage else: print "/033[31m你一共花费:%s,剩余:%s/033[0m"%(shoping_money3,wage) elif shoping == "all": #用户结算 if not len(cart): #判断购物车是否为空 print "/033[31m你的购物车为空,不需要结算。。/033[0m" free_money(wage) break else: #购物车不为空,显示购物列表和购买商品数量 print "/033[31m----------shopping list----------/033[0m" num = 0 aa = len(cart) bb = aa / 2 for x in range(bb): print cart[num],"/033[31m数量:/033[0m",cart[num+1] num+=2 print "/033[31m---------------------------------/033[0m" gm = raw_input("/033[31m是否确认购买:Y or N /033[0m ").strip() #判断用户是否购买商品 if gm == "N" or gm == "n": #用户不购买 print "你没有购买任何商品,剩余:/033[31m%s/033[0m"%wage1 free_money(wage1) break elif gm == "y" or gm == "Y": #用户购买 print "你一共花费/033[31m%s/033[0m还剩下/033[31m%s/033[0m"%(shoping_money3,wage) free_money(wage) break else: #错误输入,默认用户不购买 print "你输入的不正确,没有购买任何商品,剩余:/033[31m%s/033[0m"%wage1 free_money(wage1) break

 





分享给朋友:
您可能感兴趣的文章:
随机阅读: