简单购物车_第1张图片

#定义一个嵌套列表
product_list = [('mac',9000),
                ('bike',2000),
                ('book',100),
                ('tasila',900000)
                ]
#定义购物车
shopping_card = []
shopping_card2 = []
#定义自己的金额
saving = input("please input your money:")
#判断输入的金额是否合法
if saving.isdigit():
    saving = int(saving)
    #让不断购买商品
    while True:
        #打印列表内容
        for i,v in enumerate(product_list,1):
            print(i,'>>>',v)
        #定义购买编号
        choice = input('input your choice:[quit:q]')
        #判断输入是否数字
        if choice.isdigit():
            choice = int(choice)
            #判断商品个数
            if choice>0 and choice <= len(product_list):
                #定义商品编号
                Price = product_list[choice-1]
                #判断商品和本金的差额
                if Price[1] < saving:
                    saving -= Price[1]
                    shopping_card.append(Price)
                    print("你购买了%d号商品,价格是%s元,还剩%s元" %(choice,Price[1],saving))
                    print("-" * 30)
                    print("请继续选购")
                    print()
                else:
                    print("余额不足,还剩%s元,请充值。" %saving)
                    print("-" * 30)
                    print("")
            else:
                print("商品编号不存在")

        elif choice =='q':
            print("******你购买了以下商品*******")
            for i in shopping_card:
                if i not in shopping_card2:
                    shopping_card2.append(i)
                    print(i,"x",shopping_card.count(i))
            print("还剩%s元" %saving)
            break
        else:
            print("亲,你输入了非法字符")
else:
    print("亲,你输入了非法字符")

测试结果:

please input your money:111111
1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]1
你购买了1号商品,价格是9000元,还剩102111元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]1
你购买了1号商品,价格是9000元,还剩93111元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]2
你购买了2号商品,价格是2000元,还剩91111元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]2
你购买了2号商品,价格是2000元,还剩89111元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]3
你购买了3号商品,价格是100元,还剩89011元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]3
你购买了3号商品,价格是100元,还剩88911元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]4
余额不足,还剩88911元,请充值。
------------------------------

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]4
余额不足,还剩88911元,请充值。
------------------------------

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]3
你购买了3号商品,价格是100元,还剩88811元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]2
你购买了2号商品,价格是2000元,还剩86811元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]3
你购买了3号商品,价格是100元,还剩86711元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]2
你购买了2号商品,价格是2000元,还剩84711元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]1
你购买了1号商品,价格是9000元,还剩75711元
------------------------------
请继续选购

1 >>> ('mac', 9000)
2 >>> ('bike', 2000)
3 >>> ('book', 100)
4 >>> ('tasila', 900000)
input your choice:[quit:q]q
******你购买了以下商品*******
('mac', 9000) x 3
('bike', 2000) x 4
('book', 100) x 4
还剩75711元