·小铛铛· 2021-06-21 16:01 采纳率: 50%
浏览 42
已采纳

用python解决通信录问题

 

  • 写回答

1条回答 默认 最新

  • 关注
    #-*- coding:utf-8 -*-
    import json
    
    class System():
        def __init__(self):
            self.data = []
            self.load()
            while True:
                s = self.menu()
                if s=="1":
                    self.inquire()
                elif s=="2":
                    self.add()
                elif s=="3":
                    self.delete()
                elif s=="4":
                    self.revise()
                elif s=="5":
                    self.save()
                    break
    
        def load(self):
            try:
                with open("data.txt","r") as f:
                    d = f.read()
                    self.data = json.loads(d)
            except Exception:
                self.data = []
    
        def save(self):
            with open("data.txt","w") as f:
                f.write(json.dumps(self.data))
    
        def menu(self):
            print("********** 学生信息管理 *************")
            print("\t1.查询")
            print("\t2.添加")
            print("\t3.删除")
            print("\t4.修改")
            print("\t5.保存并退出")
            print("***********************************")
            return input("请输入1-5选择功能并按回车:")
    
        def inputDsta(self):
            return {
                "学号": input("输入学号:"),
                "姓名": input("输入姓名:"),
                "性别": input("输入性别:"),
                "年龄": input("输入年龄:"),
                "电话": input("输入电话:")
            }
    
        def inputID(self,t):
            while True:
                try:
                    i = int(input(t))-1
                    if 0 <= i < len(self.data):
                        return i
                    else:
                        print("输入id超出范围,请重新输入。")
                except ValueError:
                    print("输入错误,请重新输入。")
    
        def inquire(self):
            print("id\t学号\t姓名\t性别\t年龄\t电话")
            for i,d in enumerate(self.data):
                print(f"{i+1}\t{d['学号']}\t{d['姓名']}\t{d['性别']}\t{d['年龄']}\t{d['电话']}")
    
        def add(self):
            self.data.append(self.inputDsta())
    
        def delete(self):
            i = self.inputID("请输入要删除信息的id:")
            del self.data[i]
            print(f"id为{i+1}的信息已删除")
    
        def revise(self):
            i = self.inputID("请输入要修改信息的id:")
            self.data[i] = self.inputDsta()
    
    sys = System()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?