Python实现手机通讯录功能

1.实现一个基于面向对象思想的、具有添加、查看、删除、修改、查找、保存数据功能的通讯录程序。
2.联系人信息包括姓名、性别、手机号。
3.设计一个Friend类,该类中包括__init__( )、welcome( )、add_friend( )、show_friend( )、del_friend( )、modify_friend( )、find_friend( )、save_to_file( )、recover_data( )共9个方法。
4.数据保存到文件“backup.data”中,程序运行时自动从文件恢复数据,若没有数据则捕获异常,新建一个空白文件。

参考下这个,.自己修改下

#-*- 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()