用python写通讯录-python实现手机通讯录搜索功能

# -*- coding:utf-8 -*-

# 练习2:

# 模拟手机通讯录搜索功能

class PERSON(object):

def __init__(self):

self.name_list = ["zhangsan", "zhangsanfeng", "zhaoliu", "wangwu", "wulong", "wanda", "lisi", "liuyang","luoxiaoxiao", "linmeimei", "luhan", "gaohairui", "guojing", "huangrong", "hanhan"]

#声明空字典

self.ss_dict = {}

def total(self):

#for循环遍历列表,取出每一个姓名

for name in self.name_list:

#取出首字母

s =name[0]

#判断字典中是否有s这个key

if s not in self.ss_dict:

#如果没有,根据key将存放name的列表放入字典

# s_list = []

# s_list.append(name)

# self.ss_dict[s] = s_list

self.ss_dict[s] = [name]

else:

#如果有,根据key取出列表,将这个name添加到列表

s_list = self.ss_dict[s]

s_list.append(name)

print(self.ss_dict)

def add_person(self):

name = input("请输入姓名:")

if name not in self.name_list:

self.name_list.append(name)

s = name[0]

if s not in self.ss_dict:

self.ss_dict[s] = [name]

else:

s_list = self.ss_dict[s]

s_list.append(name)

else:

print("已存在!")

def query_person(self):

s = input("请输入要查找联系人名字的首字母:")

# s就是要查找的字典的key

if s not in self.ss_dict:

print("不存在")

else:

# 根据这个key取出字典中对应的值(列表)

s_list = self.ss_dict[s]

for index,name in enumerate(s_list):

print("序号:%s 姓名:%s" % (index,name))

# for x in range(0,len(s_list)):

# name = s_list[x]

# print("序号:%s 姓名:%s"%(x,name))

return s

def alter_person(self):

s= self.query_person()

index = int(input("请输入要修改联系人的序号:"))

new_name = input("输入更改后的名字(%s):"%self.ss_dict[s][index])

del self.ss_dict[s][index]

s = new_name[0]

if s not in self.ss_dict:

self.ss_dict[s] = [new_name]

else:

s_list = self.ss_dict[s]

s_list.append(new_name)

def delete_person(self):

while len(self.ss_dict) == "0":

print("信息为空!")

print("1.根据名字删除")

print("2.全部删除")

print("0.退出")

num = int(input("输入序号:"))

while num not in range(0,3 ):

num = int(input("选项不存在,请重输:"))

if num == 1:

s = self.query_person()

index = int(input("请输入要删除联系人的序号:"))

rs = input("是否真的要删除,(y/n):")

if rs == "y":

self.ss_dict[s].pop(index)

print("删除成功")

else:

print("取消删除")

elif num == 2:

rs = input("是否真的要删除,(y/n):")

if rs == "y":

self.ss_dict.clear()

print("删除成功")

else:

print("取消删除")

else:

return

def start(self):

self.total()

while 1:

print("1.添加联系人")

print("2.查询联系人")

print("3.修改联系人")

print("4.删除联系人")

print("0.退出")

num = int(input("输入序号:"))

while num not in range(0,5):

num = int(input("选项不存在,请重输:"))

if num == 1:

self.add_person()

elif num == 2:

self.query_person()

elif num == 3:

self.alter_person()

elif num == 4:

self.delete_person()

else:

break

p = PERSON()

p.start()

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值