3.实现购物车程序

Posted

tags:

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

需求:

1.用户接口

#1.启动程序后,让用户输入工资,然后打印商品列表
#2.商品信息,工资余额写在文件里
#3.允许用户根据上编号购买商品。
#4.用选择上商品,检测与额是否够,够就直接扣款,不够就提醒
#5.可随时退出,退出时,打印已购买商品和余额

2.商家接口

#1.商家可用添加商品
#2.修改商品价格

技术分享


 1 # -*- coding:utf-8 -*-
 2 # Author: JACK ZHAO
 3 
 4 #程序:购物车程序
 5 #需求:
 6 #1.启动程序后,让用户输入工资,然后打印商品列表
 7 #2.商品信息,工资余额写在文件里
 8 #3.允许用户根据上编号购买商品。
 9 #4.用选择上商品,检测与额是否够,够就直接扣款,不够就提醒
10 #5.可随时退出,退出时,打印已购买商品和余额
11 #salary_residue:工资余额记录文件
12 #produce_list:商品列表文件
13 #cart_list:购物车列表文件
14 
15 import os
16 import time
17 import linecache
18 
19 if os.path.exists("salary_residue"): #判断工资记录文件是否存在
20     with open("salary_residue", "rU", encoding="utf-8") as salary_residue:
21         count = len(salary_residue.readlines()) #统计文件行数
22         salary=linecache.getline("salary_residue", count) #linecache模块读取文件最后一行
23         salary=int(salary.split("=")[1]) #匹配出工资余额
24 else:
25     with open("salary_residue","a+",encoding="utf-8") as salary_residue:
26         salary = input("第一次登陆,请输入工资:")
27         if salary.isdigit():
28             salary=int(salary)
29         else:
30             print("请输入一个正整数.")
31             exit()
32 produce_list=[]
33 with open("produce_list","r",encoding="utf-8") as produce: #读取商品列表文件
34     for line in produce.readlines(): #每读取一行添加到列表
35         produce_list_item=[line.split()[0],line.split()[1]]
36         produce_list.append(produce_list_item)
37 while True:
38     print("欢迎来我的购物商城".center(50,#))
39     for index,i in  enumerate(produce_list): #遍历列表
40         print(index,i)
41     choice = input("请选择商品对应的数字编号(或q退出):")
42     if  choice.isdigit():
43         choice = int(choice)
44         if choice >=0 and choice < len(produce_list):
45             produce_price = int(produce_list[choice][1])
46             if salary >= produce_price:
47                 with open("cart_list", "a+", encoding="utf-8") as cart_list:
48                     cart_list.write("%s\\n" % produce_list[choice]) #将购买商品写入到购物车文件
49                 salary = salary - produce_price
50                 with open("salary_residue", "a+", encoding="utf-8") as salary_residue:
51                     time_format = %Y-%m-%d %X #格式化时间
52                     time_current = time.strftime(time_format)
53                     salary_residue.write("%s\\n"%time_current) # 记录消费时间
54                     salary_residue.write("salary=%s\\n" % salary) #记录工资余额
55                 print("%s 已添加到购物车.工资余额:\\033[32;1m%s\\033[0m" % (produce_list[choice][0], salary))
56             else:
57                 print("你的余额不足, 工资余额:\\033[31;1m%s\\033[0m" % salary)
58         else:
59             print("你选择的商品编号不在列表内,请重新选择.")
60     elif choice == "q":
61         print("你已经退出,购物车清单".center(50, "#"))
62         with open("cart_list", "r", encoding="utf-8") as cart_list:
63             for index,line in enumerate(cart_list.readlines()): #遍历购物车清单
64                 print(index,line.strip())
65         print("工资余额:\\033[31;1m%s\\033[0m" % salary)
66         exit()
67     else:
68         print("请商品列表中的对应的数字.")
 1 # -*- coding:utf-8 -*-
 2 # Author: JACK ZHAO
 3 #1.用户可用添加商品
 4 #2.修改商品价格
 5 
 6 #produce_list:商品列表文件
 7 # 获取已有商品列表
 8 produce_list = []
 9 with open("produce_list", "r", encoding="utf-8") as produce:  # 读取商品列表文件
10     for line in produce.readlines():  # 每读取一行添加到列表
11         produce_list.append(line.split()[0])
12 
13 menu = ‘‘‘
14 **********后台添加商品接口**********
15 1.添加商品
16 2.修改商品价格
17 ‘‘‘
18 
19 status_flag = False
20 while not status_flag:
21     print(menu)
22     choice = input("请选择对应数字操作:")
23     if choice.isdigit():
24         choice = int(choice)
25         if choice == 1:
26             #####用户添加商品#####
27             while not status_flag:
28                 produce_name = input("请输入添加商品的名称【b|返回,q|退出】:")
29                 if produce_name in produce_list:
30                     print("\\033[31;1m%s添加失败,此商品已存在\\033[0m" % produce_name)
31                     continue
32                 if produce_name == "b":
33                     break
34                 elif produce_name == "q":
35                     print("你已经退出.")
36                     status_flag = True
37                     break
38                 produce_price = input("请输入添加商品的价格【b|返回,q|退出】:")
39                 if produce_price.isdigit():
40                     produce_price = int(produce_price)
41                     with open("produce_list", "a+", encoding="utf-8") as produce_list1:
42                         produce_list1.write("\\n{_produce_name}\\t{_produce_price}".format(_produce_name=produce_name,
43                                                                                          _produce_price=produce_price))
44                         produce_list.append(produce_name)
45                         print("\\033[32;1m%s添加成功.\\033[0m" % produce_name)
46                         produce_list1.close()
47                 elif produce_price == "q":
48                     print("你已经退出.")
49                     status_flag = True
50                     break
51                 elif produce_price == "b":
52                     break
53                 else:
54                     print("商品的价格只能是一个整数.")
55         elif choice ==2:
56             #####用户修改密码#####
57             while not status_flag:
58                 produce_name = input("请输入要修改价格商品的名称【b|返回,q|退出】:")
59                 if produce_name == "b":
60                     break
61                 if produce_name == "q":
62                     print("你已经退出.")
63                     status_flag = True
64                     break
65                 if produce_name not in produce_list:
66                     print("\\033[31;1m%s修改失败,此商品不存在\\033[0m" % produce_name)
67                     continue
68                 produce_price = input("请输入修改后的价格【b|返回,q|退出】:")
69                 if produce_price.isdigit():
70                     produce_price = int(produce_price)
71                     # 将文件读取到内存中
72                     with open("produce_list", "r", encoding="utf-8") as produce_r:
73                         lines = produce_r.readlines()
74                     # 写的方式打开文件
75                     with open("produce_list", "w", encoding="utf-8") as produce_w:
76                         for line in lines:
77                             if produce_name in line:
78                                 # 替换
79                                 line = "{name}\\t {price}\\n".format(name=produce_name,price=produce_price)
80                             produce_w.write(line)
81                         print("\\033[32;1m%s修改成功.\\033[0m" % produce_name)
82                 elif produce_price == "q":
83                     print("你已经退出.")
84                     status_flag = True
85                 elif produce_price == "b":
86                     break
87                 else:
88                     print("商品的价格只能是一个整数.")
89         else:
90             print("只能选择1或者2.")
91             continue
92     elif choice == "q":
93         print("你已经退出.")
94         status_flag = True
95     else:
96         print("必须输入一个数字.")

 








以上是关于3.实现购物车程序的主要内容,如果未能解决你的问题,请参考以下文章

原生JavsScript实现简单购物车面向对象原生代码

3.实现购物车程序

Vue实现购物小球抛物线的方法实例

购物车程序

小程序实现购物车

Python程序练习3--模拟购物车