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

python通讯录的录入与测试_python实现手机通讯录搜索功能相关推荐

  1. android手机号码恢复,安卓手机通讯录没有了怎么办?如何恢复手机通讯录

    安卓手机通讯录没有了怎么办?如何恢复手机通讯录?怎样才能快速的找回丢失的联系人信息呢?遇到手机联系人信息丢失的小伙伴,都一定很焦急吧.没了一些人的联系方式大家总会感觉很不踏实. 那么应该如何快速的找回 ...

  2. android 微信 备份通讯录,微信备份手机通讯录在哪?怎么用微信备份手机通讯录?...

    微信5.2升级后,微信界面有了很大的变化,对于有些功能设置你可能一时半会找不到在哪里,像微信通讯录备份很多人都找不到,下面说说微信备份手机通讯录在哪?怎么用微信备份手机通讯录?不明白的朋友可以参考本文 ...

  3. python实现手机通讯录_python实现手机通讯录搜索功能

    # -*- coding:utf-8 -*- # 练习2: # 模拟手机通讯录搜索功能 class PERSON(object): def __init__(self): self.name_list ...

  4. python全盘搜索文件_python实现全盘扫描搜索功能的方法

    由用户指定需要扫描的盘符或目录,输入需要查找的文件或者文件夹名称(不包含中文名称) 代码: # encoding=utf-8 import os.path import stat # 用python编 ...

  5. 【效率特工队】如何快速将Excel表格的号码导入安卓和苹果手机通讯录,批量添加大量手机号码到手机通讯录的最快方法

    很多人遇到一个问题,在做微商.还有整理客户资料等等过程中 有大批量的手机号需要导入到安卓和苹果手机的通讯录保存 然后通过通讯录加客户微信,通过支付宝通讯录核实用户信息等等应用中 很多人也知道QQ同步助 ...

  6. python第八周小测试_Python小测试.doc

    Python小测试.doc 第六周 A.......1. 每个类的定义必须包含一个初始化方法,该初始化方法的名称是什么 __init__(两边各2个下划线)2. Python语言中,函数和方法的主要区 ...

  7. python入门第四章十大歌手 手机通讯录 神奇魔方阵 青春有你

    """ 场景预设:学校组织了这么一个比赛,设置了10名评委打分,为了防止作弊和恶意打分, 去掉最高分和最低分再计算平均分作为选手成绩. 本实例要求编写这样一个程序:记录评 ...

  8. python实现简单的http服务器_python实现简单http服务器功能

    背景 写一个python脚本,实现简单的http服务器功能: 1.浏览器中输入网站地址:172.20.52.163:20014 2.server接到浏览器的请求后,读取本地的index.html文件的 ...

  9. python车牌识别系统开源代码_python+opencv实现车牌定位功能(实例代码)

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验三,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验三. 由于时间紧张,代码没有进行任何优化, ...

最新文章

  1. Gradle dependency cache may be corrupt
  2. 在Java中使用final关键字可以提高性能吗?
  3. linux中vim常用命令总结
  4. 分支合并 Fork-Join 框架
  5. php购物车修改单价,php – woocommerce在结帐和购物车页面更改价格
  6. linux 常用命令02--文件属性 以及软硬链接
  7. vmware-安装vmware tools教程190915
  8. Python高级——多进程(multiprocessing)
  9. curl_multi实现并发
  10. 使用Python模拟蒙蒂霍尔悖论游戏
  11. 书评:《深入浅出数据分析》
  12. 【统计信号处理检测理论:二维CFAR】
  13. 创业板首批企业或节前招股 新公布6家上会公司
  14. ansys添加力矩_ansys中施加力矩
  15. 专访智齿科技吴立楠:智能客服行业发展的三个趋势
  16. 程序员必备心理学——心流
  17. PyCrypto —— 一个极好的信息安全python库
  18. 给大家排个雷,ensp中nat不成功原因
  19. 【5】windows本地安装数据库
  20. uni-app使用 (从下载到项目启动 流程 踩坑)

热门文章

  1. [ZJOI2013]防守战线
  2. Unix网络编程---第一次作业
  3. python遇到‘\u’开头的unicode编码
  4. C++项目代码规范(偶自用)
  5. ffmpeg 推流 在H264中插入SPS、PPS 头
  6. Win11之C盘终极清理工具
  7. Win10之选择文件右击时卡死问题(转圈圈)
  8. 解决U盘安装Win10报错:No bootbale devices found.
  9. Audition报错:“无法应用设备设置,因为发生了以下错误:MME设备内部错误“
  10. Clojure 学习入门(15)- 条件判断