# -*- 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. python全盘搜索文件_python实现全盘扫描搜索功能的方法

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

  2. python课程设计编写电子通讯录_python写一个通讯录

    闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 ​ 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 def __init__(self): w ...

  3. 用python写一个通讯录_python写一个通讯录

    闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 ​ 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 def __init__(self): w ...

  4. python 监控手机屏幕_Python 让手机实现监控功能的办法,解决一些困扰一些人很久的比如偷情的信任问题...

    怕被带绿帽怎么办,我有个朋友问我这个问题,然后我在网上找了找,想了个办法. 我的办法就是往女方口袋里放一个手机,然后手机每隔 10 分钟拍个照片,当然这是要女方同意的.如果仅仅只有女方被监控是不公平的 ...

  5. html5仿手机通讯录按字母排序及搜索功能

    1.实现联系人字母排序,点击字母跳转显示联系人组目录; 2.实现联系搜索,动态显示符合查询的联系人; 详情见资源:https://download.csdn.net/download/huicaipa ...

  6. python扫描端口脚本_Python实现的端口扫描功能示例

    本文实例讲述了Python实现的端口扫描功能.分享给大家供大家参考,具体如下: 一 代码 import sys import socket import multiprocessing def por ...

  7. python ip代理池_python实现ip代理池功能示例

    本文实例讲述了python实现ip代理池功能.分享给大家供大家参考,具体如下: 爬取的代理源为西刺代理. 用xpath解析页面 用telnet来验证ip是否可用 把有效的ip写入到本地txt中.当然也 ...

  8. python读取json配置文件_Python简单读取json文件功能示例

    本文实例讲述了Python简单读取json文件功能.分享给大家供大家参考,具体如下: read_json.json: { "rule":{ "namespace" ...

  9. python调用 matlab库_python调用matlab的搜索结果-阿里云开发者社区

    2018python技术问答集锦,希望能给喜欢python的同学一些帮助 小编发现问答专区中有很多人在问关于python的问题,小编把这些问题汇总一下,希望能给喜欢python的大家一些启示和帮助 本 ...

最新文章

  1. chmod命令中的suid和guid?
  2. SpringBoot 自定义Banner
  3. Git初学札记(零)————EGIT完成Eclipse到GitHub一条龙
  4. 5G赋能中国智慧教育
  5. 自定义注解!绝对是程序员装逼的利器!!
  6. linux文件挂载和卸载命令,Linux基础命令(八)——挂载、卸载文件系统
  7. 微软自证开源决心:GitHub 私有库免费无限开放!
  8. egg风格 什么意思_egg框架学习笔记
  9. 9.企业安全建设入门(基于开源软件打造企业网络安全) --- SOC系统建设
  10. php 调用redis中lpush的方法
  11. 发生在我们身边的灵异事件 - 发生在台湾奇萊山的一些灵异事件
  12. html文件上传协议,模拟HTML表单上传文件(RFC 1867)
  13. 根号分治 + 入门题目
  14. 软件设计-UML类图详解说明
  15. 浙江最新通信施工安全员机考真题及答案解析
  16. 浅析电容式触摸感应原理与类型
  17. java乱码详解(java中byte与char的转换)
  18. 二叉树专题 -- 持续更新
  19. 图像质量评价数据库与图像质量算法性能评价指标
  20. 串口---串口通信数据位长度对传输数据的影响

热门文章

  1. Tiptop系统日常监控维护
  2. 修改系统Android版本,版本号
  3. C语言:设圆的半径用 r 表示,圆柱的高用 h 表示,求圆球的表面积圆球的表体积,圆柱的体积,结果保留 3 位小数,要求有适当的提示
  4. 11月初中国域名商解析量TOP13:华夏名网榜尾
  5. APP淘宝,你为什么这么慢卡?
  6. 小学生C++学习视频集
  7. [渝粤教育] 四川工程职业技术学院 建筑工程测量 参考 资料
  8. 大数据框架之Hadoop:入门(一)大数据概论
  9. 游戏王千金囊开发实录三—— 主窗体(自选试题)
  10. 软件测试(4) 测试用例和设计方法