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.实现购物车程序的主要内容,如果未能解决你的问题,请参考以下文章