python 购物车项目小练习

import  time
#  展品展示
goods_list = [
	{"name": "电脑", 'price':1999,"num":20,"sum":"有现货"},
	{"name": "鼠标", 'price': 10,"num":20,"sum":"有现货"},
	{"name": "游艇", 'price': 20,"num":20,"sum":"有现货"},
	{"name": "美女", 'price': 998,"num":20,"sum":"有现货"},
	{"name": "油精", 'price': 30,"num":20,"sum":"有现货"}
]

# 添加购物车用
my_car = {
	1:{"name": "电脑", 'price':1999,"num1":0,"sum":"有现货"},
	2:{"name": "鼠标", 'price': 10,"num1":0,"sum":"有现货"},
	3:{"name": "游艇", 'price': 20,"num1":0,"sum":"有现货"},
	4:{"name": "美女", 'price': 998,"num1":0,"sum":"有现货"},
	5:{"name": "油精", 'price': 30,"num1":0,"sum":"有现货"}
}

# 充值金额函数体
chu_money=0 #初始化金额
def chongzhi():
	global chu_money
	tag =True
	while tag:
		money=input("请输入您要充值的金额").strip()
		if money.isdigit(): #isdigit(判断是否由数字组成)
			money =int(money)
			chu_money+=money
			print("充值成功,您当前的余额为{}".format(chu_money))
			break
		else:
			print("充值失败,请正确输入金额数字")

# 展品展示
def shwo_shangpin():
	print("====================================================================================")
	print("%-5s %-20s %-15s %-15s %-20s"%("商品编号" ,"商品名称", "商品价格" , "商品数量" , "是有现货"))
	for index,dic in enumerate(goods_list,start=1):
		print("%-9s %-20s %-20s %-20s %-8s"%(index,dic["name"],dic["price"],dic["num"],dic["sum"]))
	print("====================================================================================")

#添加购物车
def shopping(res):

		# 如果购物车已经存在,数量加一
		if res in my_car:
			my_car[res]["num1"]+=1
			goods_list1=goods_list[res-1]["num"]
			goods_list2=goods_list1 - my_car[res]["num1"]


			# if goods_list[res1
		else:
			# 如果没有创建一个条新记录
			my_car[res]={
				"name":goods_list[res-1]["name"],
				"price":goods_list[res-1]["price"],
				"num1":1
			}
		print("====================================================================================")
		print(">>>>>已成功添加购物车")
		print("%-5s %-20s %-15s %-15s %-20s" % ("商品编号", "商品名称", "商品价格", "商品数量", "是否有现货"))

		print("%-9s %-20s %-20s %-20s %-8s" % (res, my_car[res]["name"], my_car[res]["price"], str(str(goods_list2) + '|' + str(my_car[res]["num1"])), my_car[res]["sum"]))
		print()
		print("请您确认目前你数量为:%s件,购买产品总价为:%d元,您当前余额为:%d元,请您先核对金额后再确认购买此产品?" %(my_car[res]["num1"],my_car[res]["price"]*int(str(my_car[res]["num1"])),chu_money))
		print("====================================================================================")


# 退出购买中心
def quit():
	print('欢迎下次光临购物平台')

# 删除商品
def del_shopping(res ):
	if res .isdigit():
		res  =int(res)
		if 0 < res  <=len(goods_list):
			my_car[res]["num1"]-=1
			if my_car[res]["num1"] ==0:
				my_car.pop(res)
				a=jiesuan()
				print(a)
		else:
			print("请正确输入编码")
	else:
		print("没有这个选项")

# 结算购物车
def jiesuan():
	global tag
	while 1:
		print("====================================================================================")
		print("%-5s %-20s %-15s %-15s %-20s" % ("商品编号", "商品名称", "商品单价", "商品数量", "购买总价"))
		filter=0
		money2=0
		for index, dic in my_car.items():
			if dic["num1"] !=0:
				text = dic["price"] * dic["num1"]
				filter += dic["num1"]
				money2 += text
				print("%-9s %-20s %-20s %-20s %-8s" % (index, dic["name"], dic["price"], dic["num1"],text))
		print("请您确认目前你数量为:%s件,购买产品总价为:%d元,您当前余额为:%d元,请您先核对金额后再确认购买此产品?" % (filter,money2, chu_money))
		print("====================================================================================")
		tag1 = True
		while tag1:
			if chu_money - money2 >= 0:
				name = input("'确认购买请按y,按q结束程序'")
				if name.upper() == "Y":
					print('''
					  ********************************************
					  *       "购买成功,您还还剩余%s元"             *
					  *		                                     *
					  ********************************************
					'''%(chu_money-money2) )
					time.sleep(3)
					break
				elif name.upper() == "":
					print("请输入正确编号,购买请按y,按q结束程序")
				elif name.upper()=="Q":
					quit()
					break

				else:
					pass
			else:
				# 提示余额不足提醒
				print('''
				您的余额已不足,您当前金额只有:%s元,请痛心删掉一些产品或充充值>>>>:
				
				\033充值:	C      \033删除:	d		\033退出:	q'''%(chu_money))
				print("====================================================================================")
				print()

				# 删除商品

				name2 = input("删除一些产品输入:d		充值请输入:c		退出程序输入:q"	).strip()
				if name2.upper() == "D":
					res = input("请输入您要删除的产品编号:	").strip()
					del_shopping(res )
					jiesuan()
				elif name2.upper() == "C":
					chongzhi()
				elif name2.upper() == "	Q":
					quit()
					break
				tag = False
		break
def error():
	print("请正确输入选项")

#*************************************购物车主程序***************************************
if __name__ == '__main__':
	print(''' 
*********************************************************************************
*                                                                               *
*                            欢迎来到huangjiangyong购物平台                       *
*                                                                               *
*********************************************************************************
''')
	# 1.充金额调用
	chongzhi()
	# 2.商品展示
	shwo_shangpin()
	# 3开始购物
	tag=True
	while tag:
		res=input("请输入您要购买的产品编号:按n结算,按q退出")
		if res.isdigit():
			res =int(res)
			if 0 < res <= len(goods_list):
				shopping(res) #调用-> 添加购物车
			else:
				print("你输入的数字已超范围")

		elif res.upper()=="Q":
			quit()
			break
		elif res.upper()=="N":
			jiesuan()
		else:
			print("无法识别到您输入的编号请从新输入")

  

猜你喜欢

转载自www.cnblogs.com/huangjiangyong/p/10923809.html
今日推荐