Python 购物车管理系统 - 在线购物更便捷
import os import re filename = 'shopping_cart.txt'
print('================ 欢迎使用购物车管理系统V1.0 ================')
主菜单函数
def menu(): print(' ---------------- 主菜单 ----------------') print('1. 查看商品列表') print('2. 添加商品到购物车') print('3. 查看购物车') print('4. 修改购买数量') print('5. 移除某商品') print('6. 清空购物车') print('7. 退出程序')
主界面函数
def main(): x = 7 while True: menu() # 显示主菜单 x = int(input(' 请选择功能:')) # 输入需要使用的功能数字 if x == 0: y = input('您确定要退出系统吗?y/n:') if y == 'y' or y == 'Y': print(' 感谢使用购物车管理系统V1.0!') break else: continue elif x == 1: show_goods() # 显示商品列表 elif x== 2: add_to_cart() # 添加商品到购物车 elif x == 3: show_cart() # 查看购物车 elif x == 4: modify_cart() # 修改购买数量 elif x == 5: remove_from_cart() # 移除某商品 elif x == 6: clear_cart() # 清空购物车 elif x == 7: break # 退出程序 else: print('输入有误,请重新输入!')
商品列表
goods = [{'id': '001', 'name': 'iPhone 12', 'price': 8699}, {'id': '002', 'name': 'iPad Pro', 'price': 7999}, {'id': '003', 'name': 'MacBook Air', 'price': 8699}, {'id': '004', 'name': 'AirPods Pro', 'price': 1999}, {'id': '005', 'name': 'Apple Watch SE', 'price': 2499}]
显示商品列表
def show_goods(): print(' ---------------- 商品列表 ----------------') format_title = '{:^6} {:^16} {:^8}' print(format_title.format('id', '商品名称', '价格')) print('==========================================') format_data = '{:^6} {:^16} {:^8}' for i in goods: print(format_data.format(i.get('id'), i.get('name'), i.get('price'))) input('按任意键继续...')
添加商品到购物车
def add_to_cart(): while True: show_goods() # 显示商品列表 id = input(' 请输入要添加到购物车的商品id(输入0结束购买):') if id != '': if id == '0': # 输入0结束购买 print(' 结束购买,返回主菜单!') break else: flag = False for i in goods: if i.get('id') == id: # 查找要添加到购物车的商品是否存在 flag = True name = i.get('name') price = i.get('price') break if flag: num = input(f'请输入购买{name}的数量:') try: num = int(num) except: print('输入有误,请重新输入!') continue cart_list = [] if os.path.exists(filename): with open(filename, 'r', encoding='UTF-8') as file: cart_old = file.readlines() # 读取文件中所有信息 for i in cart_old: d = dict(eval(i)) cart_list.append(d) if cart_list: for i in cart_list: if i['id'] == id: # 当购物车中已经存在该商品时,更新购买数量 i['num'] = int(i['num']) + num break else: d = {'id': id, 'name': name, 'price': price, 'num': num} cart_list.append(d) # 将购买的商品信息添加到购物车列表中 else: d = {'id': id, 'name': name, 'price': price, 'num': num} cart_list.append(d) save(cart_list) # 将购物车列表写入文件 print(f' 已成功添加{name}到购物车!') else: print('该商品不存在,请重新输入!')
查看购物车
def show_cart(): cart_list = [] if os.path.exists(filename): with open(filename, 'r', encoding='UTF-8') as file: cart_old = file.readlines() if cart_old: for i in cart_old: d = dict(eval(i)) cart_list.append(d) if cart_list: show_cart_items(cart_list) else: print('购物车为空!') else: print('购物车为空!') input('按任意键继续...')
显示购物车商品
def show_cart_items(cart_list): print(' ---------------- 购物车 ----------------') format_title = '{:^6} {:^16} {:^8} {:^6}' print(format_title.format('id', '商品名称', '单价', '数量')) print('===================================================') format_data = '{:^6} {:^16} {:^8} {:^6}' total_price = 0 for i in cart_list: total_price += int(i.get('price')) * int(i.get('num')) print(format_data.format(i.get('id'), i.get('name'), i.get('price'), i.get('num'))) print('===================================================') print(f'总计:{total_price}元')
修改购买数量
def modify_cart(): cart_list = [] if os.path.exists(filename): with open(filename, 'r', encoding='UTF-8') as file: cart_old = file.readlines() if cart_old: for i in cart_old: d = dict(eval(i)) cart_list.append(d) if cart_list: show_cart_items(cart_list) while True: id = input(' 请输入要修改数量的商品id(输入0返回主菜单):') if id == '0': print(' 返回主菜单!') break else: flag = False for i in cart_list: if i['id'] == id: flag = True name = i.get('name') num = input(f'请输入{name}的新数量:') try: num = int(num) if num <= 0: print('数量必须大于0,请重新输入!') continue i['num'] = num print(f' 已成功修改{name}的数量!') save(cart_list) except: print('输入有误,请重新输入!') break if not flag: print('该商品不存在,请重新输入!') show_cart_items(cart_list) else: print('购物车为空!') else: print('购物车为空!') input('按任意键继续...')
移除某商品
def remove_from_cart(): cart_list = [] if os.path.exists(filename): with open(filename, 'r', encoding='UTF-8') as file: cart_old = file.readlines() if cart_old: for i in cart_old: d = dict(eval(i)) cart_list.append(d) if cart_list: show_cart_items(cart_list) while True: id = input(' 请输入要移除的商品id(输入0返回主菜单):') if id == '0': print(' 返回主菜单!') break else: flag = False for i in cart_list: if i['id'] == id: flag = True name = i.get('name') cart_list.remove(i) print(f' 已成功移除{name}!') save(cart_list) break if not flag: print('该商品不存在,请重新输入!') show_cart_items(cart_list) else: print('购物车为空!') else: print('购物车为空!') input('按任意键继续...')
清空购物车
def clear_cart(): if os.path.exists(filename): os.remove(filename) print(' 购物车已清空!') else: print('购物车为空!') input('按任意键继续...')
保存购物车列表
def save(lst): try: stu_write = open(filename, 'a', encoding = 'UTF-8') # 如果文件存在,则以追加的方式录入 except: stu_write = open(filename, 'w', encoding = 'UTF-8') # 如果文件不存在,则写入文件 for i in lst: stu_write.write(str(i) + ' ') # 写入文件并换行 stu_write.close() # 关闭I/O流
if name == 'main': main()
原文地址: https://www.cveoy.top/t/topic/oiS7 著作权归作者所有。请勿转载和采集!