购物车

扫码查看

需求:


1. 用户先给自己的账户充钱:比如先充3000元。
2. 页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10

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




代码:

'''
1. 用户先给自己的账户充钱:比如先充3000元。
2. 页面显示 序号 + 商品名称 + 商品价格,如:
        1 电脑 1999
        2 鼠标 10
        …
        n 购物车结算
3. 用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车,用户还可继续添加商品。
4. 如果用户输入的商品序号有误,则提示输入有误,并重新输入。
5. 用户输入n为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。
6. 用户输入Q或者q退出程序。
7. 退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少。

'''


goods = [
    {"name":"电脑","price":1999},
    {'name':"鼠标","price":20}
]
goods_car = {}
while 1:
    money = input("请输入充值的钱数>>: ").strip()
    if money.isdigit():
        money = int(money)
        print('充值成功%s元' %money)
        break
    else:
        print("输入量非法字符,重新输入>>: ")
flag = True
while flag:
    print('商品信息如下:')
    for index,commodity_dict in enumerate(goods):
        print('{}\t{}\t{}'.format(index + 1, commodity_dict['name'], commodity_dict['price']))
    print('输入Q或q进行结算')
    select_num = input('请输入你的选择: ').strip()
    if select_num.isdigit():
        select_num = int(select_num)
        if 0 < select_num <= len(goods):
            if (select_num -1 ) not in goods_car:
                goods_car[select_num -1] = {'name':goods[select_num -1]['name'],'price':goods[select_num -1]['price'],'amount':1}
            else:
                goods_car[select_num -1]['amount'] += 1
            print('你选择的商品信息:商品名称: {} , 商品价格: {}  商品数量:1,  并成功添加到购物车中'.format(goods[select_num -1]['name'],goods[select_num -1]['price']))
        else:
            print('你输入的序号超出范围,请重新输入:')
    elif select_num.upper() == 'N':
        while True:
            print('你的购物车商品如下:')
            total_price = 0
            for ind,com_dict in goods_car.items():
                print('序号: {}商品名称 {} 商品单价 {} 此商品总价:{}'.format(ind + 1,com_dict['name'],com_dict['price'],com_dict['price'] * com_dict['amount']))
                total_price += com_dict['price'] * com_dict['amount']
            print('-------> 总价: %s元' % total_price)
            if money >= total_price:
                money = int(money)
                print('你成功购物以上所有物品,当前余额为%s元' % money)
                flag = False
                break
            else:
                print('余额不足,还差%s元,请减掉一些商品' % (total_price - money))
                del_num = input('请输入要删除商品的序号:').strip()
                if del_num.isdigit():
                    del_num = int(del_num)
                    if (del_num -1) in goods_car:
                        goods_car[del_num -1]['amount'] -= 1
                        if not goods_car[del_num -1]['amount']:
                            del goods_car[del_num -1]
                    else:
                        print('你输入的选项超出范围,请重新输入:')
                else:
                    print('你输入了非法字符,请重新输入:')
    elif select_num.upper() == 'Q':
        print('下次再来')
        break
    else:
        print('你输入的选项不存在,请重新输入:')
12-14 02:18
查看更多