需求:
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()

 

posted on 2019-06-18 15:37  雨之夜&秋  阅读(549)  评论(0编辑  收藏  举报