朝盏487 2022-06-12 00:31 采纳率: 100%
浏览 37
已结题

怎么把下面的代码也就是将商品进货与销售数据保存于文件中?求具体代码

Store_list=[]
class goods:
def Inputmanage(self):
Store_dict={}
while True:
try:
id=int(input("请输入商品编号:"))
except Exception:
print("请输入正确的信息!")
else:
break
name=input("请输入商品的名称:")
inprice=float(input("请输入商品的进价:"))
num=int(input("请输入商品的进货数量:"))
Store_dict["编号"]=id
Store_dict["名称"]=name
Store_dict["进价"]=inprice
Store_dict["数量"]=num
Store_list.append(Store_dict)
print("入库成功!")
print(Store_list)
#进货内增功能
def Add(self):
while True:
add_id=int(input("请输入需要增加的商品编号(退出请输入0)"+"\n"+">>"))
if add_id==0:
break
for k in Store_list:
if k["编号"]==add_id:
add_num=int(input("请输入新增数量:"))
k["数量"]+=add_num
print("数据更新成功!")
print(Store_list)
break
else:
print("未找到该商品!"+"\n"+"请确认后再输入!")
#进货内删除功能
def Del(self):
del_code=int(input("请输入要删除的商品编号:"))
for x in Store_list:
if x["编号"]==del_code:
Store_list.remove(x)
print(Store_list)
print("删除完毕!")
break
else:
print("未找到该商品!"+"\n"+"请确认后再输入!")
#查找子类
def Search(self):
sear_id=int(input("请输入需要查找的商品编号:"))
for n in Store_list:
if sear_id==n["编号"]:
print(n)
print("查找完毕!")
break
else:
print("未找到该商品!"+"\n"+"请确认后再输入!")
#打印库存单
def Print(self):
print(Store_list)
def Input_user(self):

img

    print(menu)
    while True:
        code=input("请输入功能编号:>")
        if code=="1":
            self.Inputmanage()
        elif code=="2":
            self.Add()
        elif code=="3":
            self.Del()
        elif code=="4":
            self.Search()
        elif code=="5":
            self.Print()
        elif code=="6":
            break
        else:
            print("输入编号有误,请重新输入!!")
            continue

if name == "main":
g = goods()
g.Input_user()

  • 写回答

1条回答 默认 最新

  • 天际的海浪 2022-06-12 01:48
    关注

    你题目的解答代码如下:

    import csv
    
    Store_list=[]
    class goods:
        def Inputmanage(self):
            Store_dict={}
            while True:
                try:
                    id=int(input("请输入商品编号:"))
                except Exception:
                    print("请输入正确的信息!")
                else:
                    break
            name=input("请输入商品的名称:")
            inprice=float(input("请输入商品的进价:"))
            num=int(input("请输入商品的进货数量:"))
            Store_dict["编号"]=id
            Store_dict["名称"]=name
            Store_dict["进价"]=inprice
            Store_dict["数量"]=num
            Store_list.append(Store_dict)
            print("入库成功!")
            print(Store_list)
        #进货内增功能
        def Add(self):
            while True:
                add_id=int(input("请输入需要增加的商品编号(退出请输入0)"+"\n"+">>"))
                if add_id==0:
                    break
                for k in Store_list:
                    if k["编号"]==add_id:
                        add_num=int(input("请输入新增数量:"))
                        k["数量"]+=add_num
                        print("数据更新成功!")
                        print(Store_list)
                        break
                else:
                    print("未找到该商品!"+"\n"+"请确认后再输入!")
        #进货内删除功能
        def Del(self):
            del_code=int(input("请输入要删除的商品编号:"))
            for x in Store_list:
                if x["编号"]==del_code:
                    Store_list.remove(x)
                    print(Store_list)
                    print("删除完毕!")
                    break
            else:
                print("未找到该商品!"+"\n"+"请确认后再输入!")
        #查找子类
        def Search(self):
            sear_id=int(input("请输入需要查找的商品编号:"))
            for n in Store_list:
                if sear_id==n["编号"]:
                    print(n)
                    print("查找完毕!")
                    break
            else:
                print("未找到该商品!"+"\n"+"请确认后再输入!")
        #打印库存单
        def Print(self):
            print(Store_list)
    
        def load(self):
            global Store_list
            try:
                with open("data.csv","r",newline="") as fileObj:
                    Store_list = list(csv.DictReader(fileObj))
                for d in Store_list:
                    d['进价'] = float(d['进价'])
                    d['数量'] = int(d['数量'])
                print("读取文件成功")
            except Exception:
                Store_list = []
    
        def save(self):
            head = Store_list[0].keys()
            with open("data.csv","w",newline="") as fileObj:
                wr = csv.DictWriter(fileObj,head)
                wr.writeheader()
                wr.writerows(Store_list)
                print("保存文件成功")
    
    
        def Input_user(self):
            menu = """
            ==========欢迎进入广西师范大学购物商场==========
            输入功能编号,您可以选择以下功能:
            输入“1”:进货
            输入“2”:添加商品的信息
            输入“3”:删除商品的信息
            输入“4”:查找商品
            输入"5":打印库存单
            输入“6”:保存商品的信息
            输入“7”:退出系统功能
            ==========================================
            """
            print(menu)
            while True:
                code=input("请输入功能编号:>")
                if code=="1":
                    self.Inputmanage()
                elif code=="2":
                    self.Add()
                elif code=="3":
                    self.Del()
                elif code=="4":
                    self.Search()
                elif code=="5":
                    self.Print()
                elif code=="6":
                    self.save()
                elif code=="7":
                    break
                else:
                    print("输入编号有误,请重新输入!!")
                    continue
    
    if __name__ == "__main__":
        g = goods()
        g.load()
        g.Input_user()
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月12日
  • 创建了问题 6月12日

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥15 Oracle触发器记录修改前后的字段值
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题