python 改良购物车

Posted 水无

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 改良购物车相关的知识,希望对你有一定的参考价值。

Python 程序:购物车


一、流程图

 

二、目录结构

 

三、代码

1、bin目录:

1 import sys,os,json
2 dir_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
3 sys.path.append(dir_path)
4 from core import shopping
5 
6 if __name__ == "__main__":
7     shopping.main()
main.py

2、conf目录:

未编写

3、core目录:

import json,sys,os
dir_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(dir_path)
user_path = dir_path + "/db/user_data.json"
user_infor_path = dir_path + "/db/user_infor.json"
with open(user_path, "r", encoding="UTF-8") as f_load:
    user_list = json.load(f_load)
with open(user_infor_path, "r", encoding="UTF-8") as f_load:
    user_infor_list = json.load(f_load)

def login_check():
    name = input("input your user_name:")
    passwd = input("input your user_passwd:")
    if name in user_list and passwd == user_list[name]:
        print("登陆成功!")
        return name
    else:
        print("wrong uesr_name or password...")
        exit()
def creat_user():
    new_user = input("input user_name:")
    if new_user in user_list:
        print("用户已存在")
        return
    else:
        new_pswd = input("input user_pswd:")
    user_list[new_user] = new_pswd
    with open(user_path, "w", encoding="UTF-8") as f_dump:
        json.dump(user_list, f_dump)
    user_infor_list[new_user] = {"money": 1000, "user_goods": []}
    with open(user_infor_path, "w", encoding="UTF-8") as f_dump:
        json.dump(user_infor_list, f_dump)
    print("用户创建成功!")
login.py
  1 import sys,os,json
  2 dir_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  3 sys.path.append(dir_path)
  4 from core import login
  5 user_path = dir_path + "/db/user_infor.json"
  6 goods_path = dir_path + "/db/goods.json"
  7 
  8 def buy(who):
  9     with open(user_path, "r", encoding="UTF-8") as f_load:
 10         user_infor = json.load(f_load)
 11     user_goods_1 = user_infor[who]
 12     user_goods = user_goods_1["user_goods"]
 13     while True:
 14         print("--商品列表--")
 15         shop_list = goods_list()
 16         for i in shop_list:
 17             print(i,shop_list[i])
 18         print("------------")
 19         print("账户余额:",user_goods_1["money"])
 20         buy_sonething = input("选择购买的商品,按q退出!->")
 21         if buy_sonething in shop_list:
 22             user_money = user_goods_1["money"]
 23             cost_money = shop_list[buy_sonething]
 24             now_money = user_money - cost_money
 25             if int(now_money) >= 0 :
 26                 print("余额",now_money)
 27                 user_goods.append([buy_sonething,shop_list[buy_sonething]])
 28                 user_goods_1["user_goods"] = user_goods
 29                 user_goods_1["money"] = now_money
 30                 user_infor[who] = user_goods_1
 31                 with open(user_path, "w", encoding="UTF-8") as f_dump:
 32                     json.dump(user_infor, f_dump)
 33                 g = input("按任意键继续,按q退出")
 34                 if g == \'q\':
 35                     print("购物清单:")
 36                     for i in user_goods:
 37                         print(i)
 38                     return now_money
 39                 else:
 40                     continue
 41             else:
 42                 print("余额不足!您的账户余额为:%s"%user_money)
 43                 exit()
 44         elif buy_sonething == "q":
 45             exit()
 46         else:
 47             print("请输入正确的商品名称!")
 48 
 49 def goods_list():
 50     with open(goods_path,"r", encoding="utf-8") as f:
 51         shop_list = json.load(f)
 52         return shop_list
 53 
 54 def type_choice():
 55     choice = input("请选择登陆模式(1.客户/2.商家):")
 56     if choice == "1":
 57         print("顾客模式:")
 58         return 1
 59     elif choice == "2":
 60         print("商家模式:")
 61         return 2
 62     else:
 63         print("输入错误!")
 64         return 0
 65 
 66 def customer_type():
 67     web = \'\'\'
 68 "-------------"
 69 "用户登录按:1"
 70 "用户注册按:2"
 71 "-------------"
 72 \'\'\'
 73     while True:
 74         print(web)
 75         i = input("--->:")
 76         if i == "1":
 77             user = login.login_check()
 78             break
 79         elif i == "2":
 80             login.creat_user()
 81         else:
 82             print("请选择正确的编号!")
 83     buy(user)
 84 
 85 def manage_type():
 86     password = "123456"
 87     pswd = input("请输入管理员密码:")
 88     if pswd == password:
 89         while True:
 90             goods_dir = goods_list()
 91             for i in goods_dir:
 92                 print(i,goods_dir[i])
 93             goods_contral = input("1:修改价格、2:添加商品、3:删除商品、q:退出:")
 94             if goods_contral == "1":
 95                 change_goods = input("选择要修改的商品:")
 96                 goods_money = input("输入%s的新价格:"%change_goods)
 97                 goods_dir[change_goods] = int(goods_money)
 98                 with open(goods_path, "w", encoding="UTF-8") as f_dump:
 99                     json.dump(goods_dir, f_dump)
100             elif goods_contral == "2":
101                 new_goods = input("新商品:")
102                 new_price = input("价格:")
103                 goods_dir[new_goods] = int(new_price)
104                 print("添加成功")
105                 with open(goods_path, "w", encoding="UTF-8") as f_dump:
106                     json.dump(goods_dir, f_dump)
107             elif goods_contral == "3":
108                 del_goods = input("选择要删除的商品:")
109                 del goods_dir[del_goods]
110                 with open(goods_path, "w", encoding="UTF-8") as f_dump:
111                     json.dump(goods_dir, f_dump)
112             elif goods_contral == "q":
113                 break
114             else:
115                 print("输入错误!")
116     else:
117         print("密码错误!")
118         exit()
119 
120 def main():
121     user_type = type_choice()
122     if user_type == 1:  # 客户
123         customer_type()
124     elif user_type == 2:  # 商家
125         manage_type()
126     else:  # 错误
127         exit()
128 
129 if __name__ == "__main__":
130     main()
shopping.py

4、db目录:

{"bike": 200, "fruit": 80, "book": 300, "phone": 2000}
goods.json
{"aa": "123", "zz": "123", "jj": "123"}
user_data.json
{"jj": {"money": 919, "user_goods": [["fruit", 80], ["phone", 1]]}, "zz": {"money": 379, "user_goods": [["bike", 300], ["bike", 200], ["bike", 200]]}, "aa": {"money": 1420, "user_goods": [["bike", 300], ["fruit", 80]]}}
user_infor.json

5、doc目录:

readme.doc

 

以上是关于python 改良购物车的主要内容,如果未能解决你的问题,请参考以下文章

分支定界法改良背包

(转)(终极改良版)python基础番外——赋值与深浅拷贝

如何从 recyclerview 片段传递到另一个 recyclerview 片段

python_购物车代码的分解及全部代码

python 购物车代码

Python简单的购物车小代码