需求:
1、实现对网上商城的商品上架
2、实现对网上商城的商品下架
3、实现对网上商城的商品更新价格功能
4、实现对网上商城的商品信息查询
要求:充分使用函数,请尽你的最大限度来减少重复代码!
1 # -*- coding: utf-8 -*- 2 3 import sys 4 5 def readGoogs(): 6 '''读取商品文件''' 7 try: 8 with open('goodsList.txt','r') as f: 9 goods=f.readlines() 10 except: 11 print("文件未存在!") 12 sys.exit(-1) 13 return goods 14 15 def getGoods(): 16 '''获取商品信息''' 17 good_list = [] 18 for good in readGoogs(): 19 good_list.append(good.split()) 20 21 return dict(good_list) 22 23 def printGoods(): 24 '''打印商品''' 25 print("商品列表如下:") 26 for index,item in enumerate(readGoogs()): 27 print "%s\t%s" % (index+1,item) 28 29 30 def goodsShelves(): 31 '''商品上架''' 32 name=raw_input("请输入要上架的商品名称") 33 if getGoods().has_key(name): 34 print('上架商品已存在!') 35 sys.exit(-1) 36 price=raw_input("请输入该商品的价格") 37 f = open('goodsList.txt','a') 38 f.write(name + "\t" + price + "\n") 39 print('已经将商品\033[31;1m%s\033[0m上架完成') % name 40 f.flush() 41 f.close() 42 printGoods() 43 44 def goodDelete(): 45 '''商品下架''' 46 name=raw_input("请输入要下架的商品名称") 47 if getGoods().has_key(name): 48 # 要先对文件读,再覆盖写入 49 goods = readGoogs() 50 with open('goodsList.txt','w') as f_w: 51 for line in goods: 52 # 写入时跳过要下架的商品即可 53 if name in line: 54 continue 55 f_w.write(line) 56 print('已经将商品\033[31;1m%s\033[0m下架完成') % name 57 printGoods() 58 59 else: 60 print('下架的商品不存在!') 61 sys.exit(-1) 62 63 def goodModify(): 64 '''修改商品价格''' 65 printGoods() 66 name=raw_input("请输入要修改商品价格的名称") 67 if getGoods().has_key(name): 68 price=raw_input("请输入要修改商品的价格") 69 goods = readGoogs() 70 with open('goodsList.txt','w') as f_w: 71 for line in goods: 72 # 写入时跳过要下架的商品即可 73 if name in line: 74 f_w.write(name+'\t'+price+'\n') 75 continue 76 f_w.write(line) 77 printGoods() 78 else: 79 print('修改的商品不存在!') 80 sys.exit(-1) 81 82 def goodSearch(): 83 '''商品搜索''' 84 name=raw_input("请输入搜索商品名称") 85 if getGoods().has_key(name): 86 for line in readGoogs(): 87 if name in line: 88 print("搜索的商品价格为:%s" % line) 89 break 90 else: 91 print('搜索的商品不存在!') 92 sys.exit(-1) 93 94 def userChoice(): 95 '''用户选择''' 96 print("欢迎登录XXX系统后台,请选择操作") 97 print("1、商品上架") 98 print("2、商品下架") 99 print("3、修改商品价格") 100 print("4、商品查询") 101 print("5、退出") 102 choice = raw_input('请选择:') 103 if choice.isdigit(): 104 choice = int(choice) 105 if 1 == choice: 106 goodsShelves() 107 elif 2 == choice: 108 goodDelete() 109 elif 3 == choice: 110 goodModify() 111 elif 4 == choice: 112 goodSearch() 113 elif 5 == choice: 114 print("谢谢使用!") 115 sys.exit(-1) 116 else: 117 print("输入有误,请重新输入") 118 userChoice() 119 else: 120 print("请输入有效数字!") 121 userChoice() 122 123 if __name__ == '__main__': 124 userChoice()