Day2购物车

Day2
操作流程
1.提示输入用户名;输入错误则循环重新输入;
2.输入正确后,提示欢迎信息,打印用户余额,列出商品清单;
3.连续输入商品编号,进行选购,q 可推出购物;
4.选购后,计算商品总价,列出购物清单;并且判断余额是否充足
5.余额充足,提示是否结算,y 结算,q 退出,其他返回重新选择;
6.余额不足,提示余额不足,q 退出,其他按键重新选择商品;


系统设计:
结构参见流程图
1.两个 while 循环,第一个保证用户名正确,第二个保证用户在任意节点可以返回重新选择购物;
2.每一次输入,都有 if 循环保证系统的流通。


代码:

goods = {'钢笔':113,'杯子':97,'笔记本':44,'雨伞':70}#商品清单用字典存储
user = {'jim':1200,'tom':80}#消费者信息
n=0#输入用户名循环
m=0#购物车循环
sum=0#消费总金额初始值为0
user_1 = input("hello ,请输入用户名:")
while n < 1:
	if user_1 in user.keys():
		n=1
		print('*********************')
		print("你好%s, 您的余额为%s"%(user_1,user.get(user_1)))#打印输入用户的余额信息;
		print('*********************')
	else:
		user_1 = input("hello ,请重新输入用户名:")#while 嵌套 if 循环,保证输入用户名明正确(在 字典user中)
while m < 1:#while循环保证在结算节点可以重新选择商品;
	for index,key in enumerate(goods.keys()):#遍历商品清单,显示序号,商品名称,价格
		print(index,key,goods.get(key))
		str_a = list(goods)#取所有商品名称放入一个 list,在打印购物清单需要调用;
	flag= input('连续输入商品编号,退出请按“q”:\n:')
	if 'q' in list(flag):
		exit()#保证随时可以退出购物
	else:
		#print(str((list(flag))))
		str_1 = tuple((list(flag)))#把输入的商品序号保存为一个元组
		str_2 = list(flag)#商品序号保存为列表
		#print(str_2) 
		for i in str_1:
			#print(i)
			goods_1 = list(goods.keys())[int(i)]#提取所选购商品所有在 goods 中的 key 值,计算总价需要	
			#print(goods_1)
			#print(goods.get(goods_1))
			sum += int((goods.get(goods_1)))#计算商品总价
		print('您购买的商品总价为%s'%(sum))
		if sum < int(user.get(user_1)):#判断余额是否充足,充足打印购物清单,做最后确定;
			print('*****购物清单*****')
			for i1 in str_2:
				print(int(i1),str_a[int(i1)],goods.get(str_a[int(i1)]))
			flag_2 = input('是否确定结算(‘q’退出交易;‘y’完成交易;其他任意键重新选购):\n')
			if flag_2 == 'q':
				exit()
			elif flag_2 == 'y': 
				yue = int(user.get(user_1))-sum
				print('您的余额为%s'%(yue))
				#user[user_1]=int(yue)  #将新的余额赋予登录用户的值,余额写在字典,暂时未实现;
				#print(user)
				m=1#确定交易后,结束 while 循环;
			else:
				print('欢迎重新选购')
				sum=0
		else:
			flag_1 = input('您的余额不足,(‘q’退出交易,任意键(非 q)重新选购):\n')#提示余额不足,可以重新选购
			if flag_1 == 'q':#退出购物
				exit()
			else:
				print('欢迎继续购物')
				print("****************")
				sum=0#初始化 sum 值

 mac_20160128

posted @ 2016-01-27 11:13  侠之大者kamil  阅读(416)  评论(0编辑  收藏  举报