# 用户类型存放列表(商家,个人)new_item = []# shop商品信息列表shop = []# 定义一个商品信息存放表new_shop_list = []# 存放index,item的列表shop_ws = []# 将商品信息(商品,价格).txt 读到列表shop里面去with open("商品信息.txt ", ‘r+‘) as op: shop_list = op.readlines() for _shop_list in shop_list: shop.append(_shop_list.strip(‘\n‘).split(‘,‘)) #print(len(shop)) print(shop) # 登陆用的字典infoinfo = {‘商家‘: [‘新增商品‘, ‘修改商品‘, ‘删除商品‘], ‘个人‘: [] }#print(info)# 使用下标做标记位,用enumerate把shop的下角标读到index,shop读到itemfor index, item in enumerate(shop): print(index, item) shop_ws.append(index) shop_ws.append(item)# 自己定义一个true对象,在while true循环中代替breakwangsen = Truewhile wangsen: print(‘\033[32;40m------欢迎来到购物系统!!!---------\033[0m‘) for items in info: # 打印出两个绿底的********,中间的item是变量(商家,个人) print(‘\033[32;1m*******\033[0m‘, items, ‘\033[32;1m*******\033[0m‘) # 在底部打印出退出程序的位置 print(‘\033[32;1m*****‘, ‘退出程序请按:q‘, ‘\033[32;1m*****\033[0m‘) # 定义一个select 变量 为了进入菜单做判断 select = input(‘请输入您的身份:‘) # 如果输入q 结束循环 if select == ‘q‘: print(‘欢迎下次使用‘) wangsen = False else: # 如果select输入存在在info字典里 if select in info: while wangsen: if select == ‘个人‘: print(‘\033[32;1m*****欢迎来到王森购物平台*********\033[0m‘) print(‘------------商品列表如下----------------‘) print(shop_ws) salary = input(‘请输入您的工资:‘) # 判断工资为是否为数字,并将salary赋值为整数型 if salary.isdigit(): salary = int(salary) while wangsen: # 输入商品id user_choice = input(‘请输入商品id:‘) # 判断商品id是否为数字,并将user_choice赋值为整数型 if user_choice.isdigit(): user_choice = int(user_choice) # 判断user_choice存在 if user_choice < len(shop) and user_choice >= 0: # p_item就是存放商品信息的地方(商品名称,金额) p_item = shop[user_choice] print(p_item) # 如果 商品金额小于 工资 if salary >= int(p_item[1]): new_shop_list.append(p_item) # 就把商品信息加到shop列表里面去 # 把工资扣除 salary -= int(p_item[1]) print("你买了{info_1},余额\033[31;1m{info_2}\033[0m".format( info_1=new_shop_list, info_2=salary)) else: print(‘钱不够啦‘) wangsen = False else: print(‘商品id不存在‘) wangsen = False else: print(‘您输入的商品id有误,必须为存在的商品编号‘) wangsen = False else: print(‘您输入的工资有误‘) wangsen = False if select == ‘商家‘: print(‘----------------------商家修改系统----------------------‘) # 把一级目录商家的下级目录(新增商品,修改商品价格,删除商品读出来) for business in info[‘商家‘]: # 将下级目录打印出来 print(‘\033[32;1m*******\033[0m‘, business, ‘\033[32;1m*******\033[0m‘) # 在底部打印出退出程序的位置 print(‘\033[32;1m***********\033[0m‘, ‘退出请按:q‘, ‘\033[32;1m*********\033[0m‘) # 输入select_business 为了选择下级目录做判断 select_business = input(‘请输入您的操作:‘) if select_business == ‘q‘: print(‘欢迎下次使用‘) wangsen = False if select_business == ‘新增商品‘: print(shop_ws) # 输入商品名称(commodity),商品价格 ,写进商品信息.txt commodity = input(‘请输入商品名称:‘) Price = input(‘请输入商品价格:‘) with open(‘商品信息.txt‘, ‘a‘) as op: #{ws1},{ws2}后面如果加上\n就能换行了重点 这有个空格 op.write("{ws1},{ws2} \n".format(ws1=commodity, ws2=Price)) print(‘\033[32;1m******\033[0m‘, ‘商品添加成功‘, ‘\033[32;1m*****\033[0m‘) if select_business == ‘修改商品‘: print(‘\033[32;1m******\033[0m‘, ‘请对下列商品进行修改‘, ‘\033[32;1m*****\033[0m‘) print(shop_ws) pro_number = input(‘\033[38;1m请输入要修改商品的编号:\033[0m‘) if pro_number.isdigit(): pro_number = int(pro_number) new_price = input(‘请输入要修改的价格:‘) #shop相当于一个二维数组 shop[pro_number][1]=new_price #把这个txt文件删除 os.remove(‘商品信息.txt‘) #运用for循环把shop中的内容读进new_message ,在写进被清空的 商品信息.txt #a,追加模式。【可读; 不存在则创建;存在则只追加内容;】 for new_message in shop: with open (‘商品信息.txt‘,‘a‘) as op: op.write(‘{info1},{info2} \n‘.format(info1=new_message[0],info2=new_message[1])) print(‘修改成功‘) else: print(‘您输入的商品id错误‘) if select_business == ‘删除商品‘: print(‘\033[32;1m**********\033[0m‘,‘请对以下产品进行删除‘,‘\033[32;1m***********\033[0m‘) print(shop_ws) del_number = input(‘请输入删除商品的商品id:‘) if del_number.isdigit(): del_number = int(del_number) #删除对应的商品编号 del shop[del_number] #删除文件,用os模块的remove os.remove(‘商品信息.txt‘) #将现在shop的信息for循环到new_del_shop中 for new_del_shop in shop: with open(‘商品信息.txt‘,‘a‘) as op: op.write(‘{ws1},{ws2} \n‘.format(ws1=new_del_shop[0],ws2=new_del_shop[1])) print(‘\033[32;1m******\033[0m‘,‘删除成功‘,‘\033[32;1m*******\033[0m‘) else: print(‘商品id输入错误‘)
时间: 2024-12-24 21:47:39