python葵花宝典-购物车

python葵花宝典-购物车

  • 需求:
    1、让用户输入金额
    2、选择要购买的东西加入购物车
    3、当商品的总价超过预算提示金额不足
    4、让用户输入Q退出
    5、用户退出后,提示消费了多少钱,余额多少
  • 编程:
goods = [
    {"name":"电脑","price":4999},
    {"name":"鼠标","price":49},
    {"name":"键盘","price":99},
    {"name":"显示器","price":1999},
    {"name":"主机","price":999},
]
fei_yong = 0
shop_car ={} #列表的键==序号,列表的值==商品
money = input("请输入你的金额")

if money.isdigit():
    #这是真钱
    while True:

        for i in range(len(goods)):
            print(i+1,goods[i]["name"],goods[i]["price"])
        #==================商品展示==================
        choose = input("请输入你要购买的商品(N/结算--Q/退出)")
        if choose.isdigit() and 0 < int(choose) <= len(goods):
            #让用户输入商品序号并判断是不是数字以及在正常列表内
            int_index = int(choose) - 1
            #通过输入的内容减一取得goods的索引
            if shop_car.get(int_index) == None:
                shop_car[int_index] = 1
            else:
                shop_car[int_index] = shop_car[int_index] + 1
        #===========让用户把商品加入到购物车============
        elif choose.upper() == "N":
            #结算
            #... == pass
            #1.2 - 1.0 == 0.2 获取到的是False 牛顿偏离法:一个数学算法导致的偏差
            for f in shop_car:
                fei_yong = fei_yong + shop_car[f] * goods[f]["price"]

            if int(money) - fei_yong >= 0:
                for k in shop_car:
                    print(f"你购买的商品有{goods[k]['name']},单价是{goods[k]['price']},数量{shop_car[k]}")
            else:
                print("余额不足,请删除购物车商品")
                for i,v in enumerate(shop_car): #枚举
                    print(f"{i}{goods[v]['name']}{shop_car[v]}")

                str_del = int(input("请输入你要删除的商品"))
                shop_car[str_del - 1] = shop_car[str_del - 1] - 1

                if shop_car[str_del - 1] == 0:
                    shop_car.pop(str_del-1)
        elif choose.upper() == "Q":
            #退出
            print(f"你的消费金额是:{fei_yong},余额{int(money) - fei_yong}")
            break
        else:
            print("输入有误,请重新输入")

else:
    #你给的假钱
    print("请重新输入")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值