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 值
公众号请关注:侠之大者