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 值

公众号请关注:侠之大者

浙公网安备 33010602011771号