~~小练习:python的简易购物车~~

进击のpython

*****

1,用户先给自己的账户充钱:比如先充3000元。
2,有如下的一个格式:

goods = [{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},]

3,页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10

4,用户输入选择的商品序号,然后打印商品名称及商品价格,并将此商品,添加到购物车(自己定义购物车),用户还可继续添加商品。

5,如果用户输入的商品序号有误,则提示输入有误,并重新输入。

6,用户输入N为购物车结算,依次显示用户购物车里面的商品,数量及单价,若充值的钱数不足,则让用户删除某商品,直至可以购买,若充值的钱数充足,则可以直接购买。

7,用户输入Q或者q退出程序。

8,退出程序之后,依次显示用户购买的商品,数量,单价,以及此次共消费多少钱,账户余额多少,并将购买信息显示。


麻烦算法:

goods = [{"name": "电脑", "price": 1999},
         {"name": "鼠标", "price": 10},
         {"name": "游艇", "price": 20},
         {"name": "美女", "price": 998}, ]
shop_car = {}
while 1:
    try:
        m = int(input("请输入充钱金额>>>"))
        count = 0
        for i in goods:
            count += 1
            print(count, i["name"], i["price"])
        while 1:
            cho_goods = input("买点东西啊小老弟>>>")
            try:
                cho_goods = int(cho_goods)
                a = (goods[cho_goods - 1]["name"], goods[cho_goods - 1]["price"])
                if a in shop_car:
                    shop_car[a] += 1
                else:
                    shop_car[a] = 1
            except ValueError:
                if cho_goods.upper() == "N":
                    while 1:
                        pay_money = 0
                        for i in range(len(shop_car)):
                            name = list(shop_car.keys())[i][0]
                            price = list(shop_car.keys())[i][1]
                            twice = list(shop_car.values())[i]
                            pay_money += price * twice
                            print(f'商品名称:{name}  商品单价:{price}  购买数量:{twice}')
                        if pay_money > m:
                            msg = input("超额了熬!!删点什么吧")
                            shop_car1 = shop_car.copy()
                            for k in shop_car1:
                                if msg == k[0]:
                                    shop_car[k] -= 1
                                    if shop_car[k] == 0:
                                        del shop_car[k]
                        else:
                            pay_money = 0
                            print("—————————购买成功—————————")
                            for i in range(len(shop_car)):
                                name = list(shop_car.keys())[i][0]
                                price = list(shop_car.keys())[i][1]
                                twice = list(shop_car.values())[i]
                                pay_money += price * twice
                                print(f'商品名称:{name}  商品单价:{price}  购买数量:{twice}')
                            print(f"总共花费:{pay_money}")
                            print(f"钱包余额:{m-pay_money}")
                            print("————————欢迎下次光临————————")
                            exit()
                elif cho_goods.upper() == "Q":
                    print("欢迎下次光临!")
                    exit()
                else:
                    print("请重新输入!")
            except IndexError:
                print("请重新输入")
    except ValueError:
        print("你这钱也不是个正经钱啊!")

简单算法:

goods = [{"name": "电脑", "price": 1999},
         {"name": "鼠标", "price": 10},
         {"name": "游艇", "price": 20},
         {"name": "美女", "price": 998}, ]
while 1:
    money = input("充点钱啊!老铁!(按Q退出)")
    try:
        money = int(money)
        name, price, twice = [], [], []
        for i in range(len(goods)):
            print(i + 1, goods[i]["name"], goods[i]["price"])
            name.append(goods[i]["name"])
            price.append(goods[i]["price"])
            twice.append(0)
        while 1:
            num = input("请输入你要购买的东西:")
            try:
                num = int(num)
                twice[num - 1] += 1
                print("以将{}加入购物车,单价为:{}".format(name[num - 1], price[num - 1]))
            except ValueError:
                if num.upper() == "N":
                    while 1:
                        pay = 0
                        for i in range(len(goods)):
                            if twice[i] <= 0:
                                pass
                            else:
                                print(name[i], price[i], twice[i])
                                pay += price[i] * twice[i]
                        if pay > money:
                            msg = input("超额了熬!!删点什么吧")
                            if msg.upper() == "Q":
                                print("欢迎下次光临!")
                                exit()
                            if msg in name:
                                twice[name.index(msg)] -= 1
                        else:
                            print("—————————购买成功—————————")
                            for i in range(len(goods)):
                                if twice[i] == 0:
                                    pass
                                else:
                                    print(f'商品名称:{name[i]}  商品单价:{price[i]}  购买数量:{twice[i]}')
                            print(f"总共花费:{pay}")
                            print(f"钱包余额:{money-pay}")
                            print("————————欢迎下次光临————————")
                            exit()
                elif num.upper() == "Q":
                    print("欢迎下次光临!")
                    exit()
                else:
                    print("请重新输入!")
            except IndexError:
                print("请重新输入")
    except ValueError:
        if money.upper() == "Q":
            print("欢迎下次光临!")
            exit()
        else:
            print("你这钱也不是个正经钱啊!")


*学会了吗*
*凑弟弟*
posted @ 2019-07-06 00:00  吃夏天的西瓜  阅读(455)  评论(0编辑  收藏  举报