zoukankan      html  css  js  c++  java
  • Python之路05-网上商城之商品上下架

    需求:
    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	%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 + "	" + price + "
    ")
     39     print('已经将商品33[31;1m%s33[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('已经将商品33[31;1m%s33[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+'	'+price+'
    ')
     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()
  • 相关阅读:
    PCM简介
    微波炉炖蛋
    python的命令行参数处理
    耳机标准
    SELinux杂谈
    Linux ssh服务器配置
    Centos 7安装nginx
    WPF TextBox属性IsReadOnlyCaretVisible
    [WPF打印]WPF 文档元素(Run TextBlock Paragraph)的文字对齐方式
    [SQLite3]connection string的连接池参数引发的错误
  • 原文地址:https://www.cnblogs.com/hulk-1029/p/11045467.html
Copyright © 2011-2022 走看看