欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python---购物车

程序员文章站 2022-06-24 11:06:26
让用户输入金钱 money = input("请输入充值的金额:") if money.isdecimal(): 判断用户输入的是不是数字(是不是真钱) goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"n ......

# 让用户输入金钱

money = input("请输入充值的金额:")
if money.isdecimal():
# 判断用户输入的是不是数字(是不是真钱)
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
# goods就是超市中的商品货架
car = {}
# 推的购物车
money_sum = 0
# 消费的总额
while true:
# 循环展示商品
for i in range(len(goods)):
print(i+1,goods[i]["name"],goods[i]["price"])
# 展示商品序号,名称,价格
num = input("请输入您要购买的商品序号(n/结算|q/退出):")
# 用户输入要购买的序号

    if num.isdecimal() and 0 < int(num) <= len(goods):
        # 判断用户输入商品序号在商品货架上
        num = int(num) - 1
        # 展示的时候进行加1 用户输入的商品序号进行减1
        print(goods[num]["name"],goods[num]["price"])
        # 展示用户选择的商品名称和价格
        if car.get(goods[num]["name"]):
            # 判断用户推得购物车中是否有此商品
            car[goods[num]["name"]][goods[num]["price"]] += 1
            # 在针对此商品数量进行加1
        else:
            # 此商品不在购物车中
            car[goods[num]["name"]] = {goods[num]["price"]:1}
            # 将此商品添加到购物车中
        print(car)
        # 查看我们的购车中都有哪些商品

    elif num.upper() == "n":
        # 结算功能
        for em in car:
            # 循环查看购物车中的商品
            sp_num = list(car[em].values())[0]
            # 每一个商品的数量
            sp_price = list(car[em].keys())[0]
            # 每一个商品的单价
            money_sum += int(sp_num) * int(sp_price)
            # 购物车中所有商品的总价格
            print(f"商品:{em}\t数量:{sp_num}\t单价:{sp_price}")
            # 给用户展示购买了哪些商品

        if int(sp_num) * int(sp_price) <= int(money):
            # 判断用户购物车中商品的总金额时候小于用户的充值金额
            money = int(money) - money_sum
            # 进行支付
            print(f"结算成功,消费金额 :{money_sum}账户余额 :{money}")
            # 给用户显示此次购物共消费的金额
            car.clear()
            # 清空购物车(结算完了)
        else:
            print("钱不够啊!")
            sp_name = input("请输入您要删除的商品名称:")
            # 让用户输入要删除的商品名称
            if sp_name in car:
                # 判断要删除的商品是否在购物车中
                if car[sp_name][list(car[sp_name].keys())[0]] > 0:
                    # 判断此商品的总数量是否大于0
                    car[sp_name][list(car[sp_name].keys())[0]] -= 1
                    # 对商品的总数量进行减1
                if car[sp_name][list(car[sp_name].keys())[0]] == 0:
                    # 如果此商品不在购物车中
                    del car[sp_name]
                    # 删除此商品
            else:
                print("商品不存在!")

    elif num.upper() == "q":
        # 退出
        print("欢迎下次光临!")
        money = int(money) - money_sum
        # 用户的充值金额 减去消费金额 获取最新的账号余额
        print(f"结算成功,消费金额 :{money_sum}账户余额 :{money}")
        # 给用户显示此次购物消费了多少钱,还剩多少钱
        break
        # 将客人请出超市
    else:
        print("输入错误,请重新输入!")

else:
print("滚犊子!")