zoukankan      html  css  js  c++  java
  • ~~小练习: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("你这钱也不是个正经钱啊!")
    
    

    *学会了吗*
    *凑弟弟*
  • 相关阅读:
    WYT的刷子
    小烈送菜
    猴腮雷
    基于Docker的Mysql主从复制搭建
    C#集合类型大揭秘
    ASP.NET三剑客 HttpApplication HttpModule HttpHandler 解析
    使用缓存的正确姿势
    【模块化那些事】 拆散的模块化
    分享一个开源的网盘下载工具BaiduPCS-Go
    【抽象那些事】不必要的抽象
  • 原文地址:https://www.cnblogs.com/jevious/p/11190299.html
Copyright © 2011-2022 走看看