实现购物车购物功能----优化版本

第一版简单版:

while True:
 sar=input('请输入工资:')
 if sar.isdigit():
     sar=int(sar)
     break
 else:
     print('请输入正确格式!')
th=[['macbook',7000],['iphone',5000],['coffee',90],['pythonbook',40]]
for i in th:
    print(th.index(i),i)
lis=[]
flag='t'
while flag!='q':
    s = int(input('请输入你需要的商品序号:'))
    k=0
    for j in lis:
        k=k+j[1]
    if int(th[s][1])+int(k) > sar:
        print('余额不足')
    else:
        lis.append(th[s])
        sar=sar-k
        print('当前余额是:%d'%(sar-int(th[s][1])-int(k)))
    flag=input('还要购买吗?y/q')
    if flag =='q':
        print('您已购买的商品:')
        for m in lis:
            print(m)
        print('您的余额是%d'%(sar-int(th[s][1])-int(k)))
        print('欢迎再次光临')

第二版修改----知识点:(1)列表和元组可以用多个变量接受,这样易于操作(2)商品序号加判断

while True:
 sar=input('请输入工资:')
 if sar.isdigit():
     sar=int(sar)
     break
 else:
     print('请输入正确格式!')
th=[['macbook',7000],['iphone',5000],['coffee',90],['pythonbook',40]]

for i,v in enumerate(th,1):
    print(i,'>>>>',v)

#以上是对实现输入工资是否合理的判断,不合理重新输入
#输入的商品序号做判断:1.非数字2.退出3.超过长度4.空格---嵌套判断
lis=[]
while True:
    s = input('请输入你需要的商品序号,退出请输入q:')
    if s.isdigit() and 0<=int(s)<len(th) :
        s= int(s)
        if sar> th[s][1]:
            lis.append(th[s])
            sar = sar - th[s][1]
            print('当前余额是:%d'%(sar))
        else:
            print('当前余额不足')
    elif s=='q':
        if lis==[]:
            print('您未购买任何商品')
            break
        else:
            print('您已购买的商品:')
            for m in lis:  # 遍历已购买的商品
                print(m)
            print('您的余额是%d' % (sar),'欢迎再次光临')
            break
    else:
        print('请输入正确的序号')

猜你喜欢

转载自www.cnblogs.com/duguxiren/p/11622601.html