python基本数据类型实现购物车

功能要求:

  • 要求用户输入总资产,例如:2000
  • 显示商品列表,让用户根据序号选择商品,加入购物车
  • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
  • 附加:可充值、某商品移除购物车

1

2

3

4

5

6

goods=[

{"name":"电脑","price":1999},

{"name":"鼠标","price":10},

{"name":"游艇","price":20},

{"name":"美女","price":998},

]

goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
money=int(input("请输入您的总金额:"))
cart={}#定义一个空的购物车
#商品列表
for i in goods:
    print(i["name"],i["price"])

while True:
    i2=input("请选择商品,y/Y结算;")
    #如果选择结算,则退出循环
    if i2.lower()=="y":
        break;
    for item in goods:
        if item["name"]==i2:
            name=item["name"]
            #如果购物车已有该商品,数量+1,若美女,则新建字典用于存储商品信息
            if name in cart.keys():
                cart[name]["num"]+=1;
            else:
                cart[name]={"num":1,'sigle_price':item["price"]}
    print(cart)
    #结账
all_prices=0
for k,v in cart.items():
    n=v['sigle_price']
    m=v['num']
    all_sum=n*m;
    all_prices+=all_sum;
if all_prices>money:
    print("余额不足")
else:
    print("消费:",all_prices)

下面的实现方法存在点小问题,暂时还未找到解决方案,有懂得的朋友欢迎指正!

"""
功能要求:
    要求用户输入总资产,例如:2000
    显示商品列表,让用户根据序号选择商品,加入购物车
    购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    附加:可充值、某商品移除购物车
"""
"""
1.创建空的购物车列表
2.要求用户输入金额资产
3.输入后列出商品列表
4.用户选择商品,加入购物车
5.结算,如果商品价格大于用户总资产提示余额不足,询问是否删除商品
6.结算资金充裕,提示购买成功,显示余额并退出
"""
goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]
cart={"good_list":[],"price_list":[]}

#用户输入账户金额
money=int(input("请输入您的账户金额:"))
#打印商品信息
print("Product List:")
while True:
    for k,v in enumerate(goods,1):
        for i in range(len(goods)):
            if k-1==i:
                print(k,goods[i]["name"],goods[i]["price"])
    #用户选择商品
    products=int(input("请选择你喜欢的商品:"))
    print("你选择的商品是:",goods[products-1]["name"],"花费:",goods[products-1]["price"])
    #计算选择商品后的余额
    cur_assets=money-goods[products-1]["price"]
    if cur_assets>0:
        cart["good_list"].append(goods[products-1]["name"])   #如果资金充足,将商品加入购物车,并结算
        cart["price_list"].append(goods[products-1]["price"])
        print("你目前的账户余额为:",cur_assets,"¥")
        choose=input("继续购物,请按'c';结账,请按'o';显示信息,请按'l';退出,请按'q'")
        #查看加入购物车的商品信息
        if choose=='l':
            for prod,val in enumerate(cart["good_list"],1):
                print(prod,val)
                break
        elif choose=='q':
            print("谢谢惠顾")
            break;
        elif choose=='c':
            continue
        elif choose=='o':
            total=sum(cart["price_list"])
            if total>money:
                print("余额不足!")
            else:
                print("谢谢,本次花费:",total,'¥',"余额:",money-total,"¥")
                break;
        else:
            print("错误,请重新输入:")
    else:
        print("对不起,您的账户余额不足!")
        break