购物车v1版本

版权声明

做者: 张志强(xeon)
出处: https://www.cnblogs.com/xeoon
邮箱: xeon@xeon.org.cn
本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接。经过本博客学习的内容,形成任何后果均与本人无关!!!

做业:购物车
1. 用户先给本身的帐户充钱:好比先充3000元。
2. 页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10

n 购物车结算
3. 用户输入选择的商品序号,而后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
4. 若是用户输入的商品序号有误,则提示输入有误,并从新输入。
5. 用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至能够购买,
若充值的钱数充足,则能够直接购买。
6. 用户输入Q或者q退出程序。
7. 退出程序以后,依次显示用户购买的商品,数量,单价,以及这次共消费多少钱,帐户余额多少。python

goods = {
    '1': {'name': '手机', 'price': 1999},
    '2': {'name': '电脑', 'price': 8000},
    '3': {'name': '背包', 'price': 200},
    '4': {'name': '鼠标', 'price': 50}
}

my = {
    'account': 0,  # 充值金额
    'shopping_cart': {},  # 已购买物品列表
    'deal_list': {}  # 成交列表
}

while True:
    money = input('请给帐户充值金额(整数):').strip()
    if money.isdigit():
        my['account'] = int(money)
        break
    else:
        print('充值失败,请从新充值:')

while True:
    print('商品列表'.center(26, '*'))
    for i in goods:
        print(i, goods[i]['name'], goods[i]['price'])

    x = input('请选择商品序号 N结算退出 Q退出:')
    if x in goods:  # 在个人商品列表里面
        count = my['shopping_cart'].setdefault(x, 0)
        my['shopping_cart'][x] = count + 1  # {'商品编号': 商品数量}

    elif x.upper() == 'Q':  # 退出
        break

    elif x.upper() == 'N':  # 结算退出
        num = 0
        for i in my['shopping_cart']:
            num += goods[i]['price'] * my['shopping_cart'][i]  # 商品价格 * 购买的数量
        if num > my['account']:  # 金额不足
            for i in my['shopping_cart']:
                print(i, goods[i]['name'], goods[i]['price'], my['shopping_cart'][i])  # 商品名称 商品价格 商品数量
            xx = input('结算失败,请删除部分商品:')
            if xx in my['shopping_cart']:  # 删除商品
                my['shopping_cart'].pop(xx)

        else:  # 金额足够
            print('已购商品'.center(26, '*'))
            print('商品加入购物车成功')
            for i in my['shopping_cart']:
                print(goods[i]['name'], goods[i]['price'], my['shopping_cart'][i])  # 商品名称 商品价格 商品数量
            my['account'] -= num  # 扣钱
            print('本次消费金额%s, 余额%s' % (num, my['account']))
            break
    else:
        print('没有此商品,请从新输入:')
相关文章
相关标签/搜索