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

用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()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!