zoukankan      html  css  js  c++  java
  • python3 购物车练习

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

    goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10},
             {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ]
    dic1, dic2, dic3, dic4 = goods      # 拆分为各商品字典
    name = [dic1["name"], dic2["name"], dic3["name"], dic4["name"]]     # 商品名列表(从各商品字典取去商品名)
    price = [dic1["price"], dic2["price"], dic3["price"], dic4["price"]]    # 商品价格列表(与商品名列表对应)
    # dic_g = {}    # 定义购物车字典(未使用)
    list_g = []     # 购物车商品列表
    price_g = []    # 购物车商品价格列表
    price_s = 0     # 购物车商品总价
    
    mo = input("请输入您的总资产(¥):")
    tag = True
    while tag:
        if mo.isdigit():    # 判断金额是否为整数
            mo = int(mo)
            # 列出商品编号和名称
            print("
    ""输入商品序号添加至购物车:")
            for i in range(0, len(name)):
                print(i + 1, name[i])
            print(len(name) + 1, "退出购物")
            print(len(name) + 2, "<<结算>>")
            # 购物选择
            tag_n = True
            while tag_n:
                n = int(input('
    '"请选择商品>>>"))
                if n in range(1, len(name) + 1):
                    list_g.append(name[n - 1])  # 加入购物车商品列表(!!!如果换成从字典取值,则不能显示重复购买的商品)
                    price_g.append(price[n - 1])  # 加入购物车商品价格列表(可不加,直接加价格)
                    price_s += price[n - 1]  # 每添加一次购物车,购物总价也增加
                    print("购物车已添加:", list_g)
                    print("总价格为:", price_s)  # 打印总价格
                elif n == len(name) + 1:
                    print("已退出购物!")
                    tag_n = False
                    tag = False
                elif n == len(name) + 2:
                    if len(list_g) == 0:
                        print("购物车无商品!")
                        continue
                    # 购物车有商品结算
                    tag_g = True
                    while tag_g:
                        # 资产不足
                        if mo < price_s:
                            print("
    ""资产不足!充值或删除商品:""
    "
                                  "1 充值""
    "
                                  "2 删除商品""
    "
                                  "3 退出购物")
                            m = int(input("请选择>>"))
                            tag_m = True
                            while tag_m:
                                # 充值
                                if m == 1:
                                    mo_add = int(input("请输入金额:"))
                                    mo += mo_add
                                    print("总资产为:", mo)
                                    print("总价格为:", price_s)
                                    tag_m = False
                                # 删除购物车商品
                                elif m == 2:
                                    print("
    ""购物车已添加:", list_g)
                                    print("选择要删除购物车的商品编号>>>")
                                    for i in range(0, len(name)):
                                        print(i + 1, name[i])
                                    print(len(name) + 1, "返回上一层")
                                    # 购物车删除,总价格减除
                                    tag_n1 = True
                                    while tag_n1:
                                        n1 = int(input("请选择>"))
                                        if n1 in range(1, len(name) + 1) and name[n1 - 1] in list_g:
                                            list_g.remove(name[n1 - 1])  # 移除购物车商品列表
                                            price_g.remove(price[n1 - 1])  # 移除购物车商品价格列表(可不加,直接减总价)
                                            price_s = price_s - price[n1 - 1]
                                            if len(list_g) == 0:  # 判断购物车是否被删空
                                                print("
    ""购物车无商品!")
                                                mo = str(mo)    # 无商品,返回重新购物
                                                Enter = input("<<<按Enter添加购物车>>>")
                                                tag_n1 = False
                                                tag_m = False
                                                tag_g = False
                                                tag_n = False
                                            else:
                                                print("
    ""购物车剩余:", list_g)
                                                print("总资产为:", mo)
                                                print("总价格为:", price_s)
                                                tag_n1 = False
                                        elif n1 == len(name) + 1:
                                            tag_n1 = False
                                            tag_m = False
                                        else:
                                            print("购物车没有此商品!")
                                elif m == 3:
                                    print("已退出购物!")
                                    tag_m = False
                                    tag_g = False
                                    tag_n = False
                                    tag = False
                                else:
                                    print("输入错误!")
                        # 资产充足
                        else:
                            enter = input("<<资产充足,按Enter结算>>")
                            mo -= price_s
                            print("资产余额:", mo)
                            print("购物成功!")
                            tag_g = False
                            tag_n = False
                            tag = False
                else:
                    print("输入错误!")
        else:
            print("输入金额错误!")
    

      

      

  • 相关阅读:
    作业3-2
    作业3-1
    习题二(8)
    习题二(7)
    习题二(6)
    习题二(5)
    习题二(4)
    实验2-2
    实验2
    第二章 例题2-11
  • 原文地址:https://www.cnblogs.com/lucaq/p/6973520.html
Copyright © 2011-2022 走看看