zoukankan      html  css  js  c++  java
  • 练习-模拟商城购物车

    # 余额
    Money = 10000
    
    # 购物车列表
    shopping_cart = []
    
    # 商品列表,可以用list代替,用dict是为了练习
    commodity = {
        '男装': 318,
        '女装': 218,
        '内衣': 118,
        '': 98,
        '箱包': 546,
        '配件': 342,
        '童装玩具': 32,
        '孕产': 998,
        '数码': 4999,
    }
    
    
    # 显示商品列表
    def print_commodity():
        p_count = 0
        print('商品列表')
        for i in commodity:
            p_count += 1
            print('   %d:%s  价格:%d' % (p_count, i, commodity[i]))
    
    
    # 显示购物车列表
    def print_shopping_cart():
        p_count = 0
        print('购物车 总价:%d  余额:%d' % (sel_price(), Money))
        for i in shopping_cart:
            p_count += 1
            print('   %d:%s  价格:%d' % (p_count, i[0], i[1]))
    
    
    # 删除购物车商品
    def del_shopping_cart():
        while True:
            print_shopping_cart()
            select = input('输入要删除的商品序号(b=返回上一级,q=退出):')
            if select == 'b':
                break
            elif select == 'q':  # 退出
                print('退出购物')
            elif select.isdigit() and int(select) > 0 and int(select) <= len(shopping_cart):
                shopping_cart.pop(int(select) - 1)
            else:
                print('输入错误,不存在 %s 商品' % select)
    
    
    # 计算总价
    def sel_price():
        price = 0
        for i in shopping_cart:
            price += i[1]
        return price
    
    
    print_commodity()
    
    while True:
        select = input(
            "选择1~9加入购物车(b=结算,q=退出,s=购物车列表,v=商品列表,d=删除购物车商品 余额:%d):" % Money)
        if select == 'v':  # 显示商品列表
            print_commodity()
        elif select == 's':  # 显示购物车列表
            print_shopping_cart()
        elif select == 'q':  # 退出
            print('
    ' * 5, '退出购物'.center(50, '-'))
            break
        elif select == 'd':  # 删除购物车商品
            del_shopping_cart()
        elif select == 'b':  # 结算
            if len(shopping_cart) > 0:  # 判断购物车有无商品
                price = sel_price()
                if (Money - price) > 0:  # 判断余额是否充足
                    Money -= price
                    print('共购买 %d 件商品,总价:%d ,剩余金额 %d' %
                          (len(shopping_cart), price, Money))
                    shopping_cart.clear()  # 清空购物车
                else:
                    print('余额不足,无法完成当前购买 剩余余额:%d 商品总价:%d' % (Money, price))
                    print('1:删除购物车所有商品
    2:删除一些商品')
                    while True:
                        select = input('输入选择(b=返回上一级,q=退出):')
                        if select == 'b':  # f
                            break
                        elif select == 'q':  # 退出
                            print('退出购物')
                        elif select == '1':  # 删除所有
                            shopping_cart.clear()
                            break
                        elif select == '2':  # 删除指定商品
                            del_shopping_cart()
                            break
                        else:
                            print('输入错误,不存在 %s 指令' % select)
            else:
                print('未选择商品,请购买商品后结算')
        elif select.isdigit() and int(select) > 0 and int(select) <= len(commodity):
            # 获取键(购物列表用list的话,可以commodity[int(select)-1][0]或[1]取出商品名称和价格
            itemkey = list(commodity.keys())[int(select) - 1]
            # 加入购物车
            shopping_cart.append([itemkey, commodity[itemkey]])
            print("%s 加入购物车 已加入%d件商品" % (itemkey, len(shopping_cart)))
        else:
            print('输入错误,不存在 %s 指令' % select)
    
    
    exit()
  • 相关阅读:
    高分辨率下IE浏览器缩放导致出现右侧滚动条问题的解决
    Asp.Net Core 项目实战之权限管理系统(6) 功能管理
    Asp.Net Core 项目实战之权限管理系统(5) 用户登录
    Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
    Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL
    Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计
    Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
    Base-64 字符数组或字符串的长度无效等问题解决方案
    Asp.Net Core 项目实战之权限管理系统(0) 无中生有
    SEO
  • 原文地址:https://www.cnblogs.com/xh4528/p/6498596.html
Copyright © 2011-2022 走看看