###################################################################
#---模拟电话本、通讯录
###################################################################
name=[]
age=[]
hobby=[]
ad=[]
qq=[]
mail=[]
class books():#定义一个通讯录类
   def __init__(self,name,age,hobby,ad,qq,mail): #初始化属性  在有子类继承时如果子类定义了初始化方法
       #则程序运行时不会再调用父类初始2
       # 化方法。如果子类没有写init()初始化方法,则默认自动调用父类方法
       #如果想要父类和子类都运行各自的方法,子类需要自己初始化方法,并继承父类init,需要加上 父类.__init__(self,....)
       #或是super(self,子类名).__init__(self,.....)

       self.name=name
       self.age=age
       self.hobby=hobby
       self.ad=ad
       self.qq=qq
       self.mail=mail
       print('{*30*}',format("1.添加联系人"))
       print('{*30*}',format("2.显示联系人"))
       print('{*30*}',format("3.删除联系人"))
       print('{*30*}',format("4.查找联系人"))
       print('{*30*}',format("5.退出系统"))

# ----------------------------------------------------------------
   def add(self): #添加通讯簿成员 方法定义
               print("姓名:")
               self.name = input("")
               print("年龄:")
               self.age = input("")
               print("爱好:")
               self.hobby = input("")
               print("地址:")
               self.ad = input("")
               print("qq:")
               self.qq = input("")
               print("mail:")
               self.mail = input("")
               name.append(self.name)
               age.append(self.age)
               hobby.append(self.hobby)
               ad.append(self.ad)
               qq.append(self.qq)
               mail.append(self.mail)
               print("添加成功!按任意键继续……")

# ----------------------------------------------------------------
   def find(self): #查找通讯薄成员 方法定义
    findname = input("请输入要查找的人员名字:")
    print("以下是为您匹配到个结果:无结果则表示列表为空")
    for i in range(0, len(name)):
      if findname in name[i]:
        print("******-----------------------******")
        print("姓名:", name[i])
        print("年龄:", age[i])
        print("爱好:", hobby[i])
        print("地址:", ad[i])
        print("qq:", qq[i])
        print("mail:", mail[i])
        print("******-----------------------******")


   def delete(self): #删除通讯簿成员 方法定义
      deletename=input("请输入要删除的人员名字:")
      if(name.count(deletename)==0):  #有条件判断时,应把条件从句写在开口处,如果放在for循环中,很多时候会失效。程序逻辑也会不清晰。此句是判断输入值是否在name列表中存在。list.count(obj)
          #可以计算出对象obj在列表中出现的次数。
            print("查无此人!")
      else:
          for i in range(0, len(name)):
            if deletename in name[i]:
                name.remove(name[i])
                print("删除成功!")






# ----------------------------------------------------------------
   def see(self):  #显示所有通讯簿成员 方法定义
            if(len(name)<1):
                print("通讯录列表为空!") #有条件判断时,应把条件从句写在开口处,如果放在for循环中,很多时候会失效#
            else:
                print("通讯录列表:")
                for i in range(0, len(name)):
                   print("姓名:",name[i])
                   print("年龄:", age[i])
                   print("爱好:", hobby[i])
                   print("地址:", ad[i])
                   print("qq:", qq[i])
                   print("mail:", mail[i])
                   print("-----------------------------")



# ----------------------------------------------------------------
#操作符
# ----------------------------------------------------------------
   def manual(self): #操作菜单 方法定义

       while (1):
           try:
            number = int(input("请输入操作编号:"))
            if number in[1,2,3,4,5]:
               if (number == 1):
                   Book.add()
               elif (number == 2):
                      Book.see()
               elif (number == 3):
                   Book.delete()
               elif (number == 4):
                    Book.find()
               elif(number==5):
                    break
            else:print("请输入正确的字符编码!")

           except:
                 print("请输入正确的字符编码!")



Book = books("", "", "", "", "", "")
Book.manual()



mark:这个小程序没有添加验证功能,需要自己可添加验证条件。