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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Python实现通讯录功能
  • Python利用字典将两个通讯录文本合并为一个文本实例
  • Python实现命令行通讯录实例教程
  • 一个简单的python程序实例(通讯录)
  • Python爬虫抓取手机APP的传输数据
  • python实现发送和获取手机短信验证码
  • Python(Tornado)模拟登录小米抢手机
  • 使用python编写脚本获取手机当前应用apk的信息
  • 使用python编写批量卸载手机中安装的android应用脚本
  • python抓取京东商城手机列表url实例代码
(0)

相关推荐

  • Python爬虫抓取手机APP的传输数据

    大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 方法详细可以参考这篇博文:Fiddler如何抓取手机APP数据包 得到超级课程表登录的地址:http://120.55.151.61/V2/StudentSkip/loginCheckV4.action 表单: 表单中包括了用户名和密码,当然都是加密过了的,还有一个设备信息,直接post过去就是. 另外必须加header,一开始我没有加header得

  • Python利用字典将两个通讯录文本合并为一个文本实例

    本文实例主要实现的是利用字典将两个通讯录文本合并为一个文本,具体代码如下: def main(): ftele1=open("d:\TeleAddressBook.txt","rb") ftele2=open("d:\EmailAddressBook.txt","rb") ftele1.readline()#跳过第一行 ftele2.readline() lines1=ftele1.readlines() lines2=fte

  • python实现发送和获取手机短信验证码

    首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下 1.生成4位数字验证码 def createPhoneCode(session): chars=['0','1','2','3','4','5','6','7','8','9'] x = random.choice(chars),random.choice(chars),random.choice(chars),random.choice(chars) verifyCode = "".join(x) s

  • Python(Tornado)模拟登录小米抢手机

    今天看到同事参与小米的抢购,几经数个星期的尝试,终于抢到了一台小米电视--看了一下小米的抢购流程,似乎可以用程序可破.于是想写点东西玩玩(你懂的--),第一步肯定是先得模拟登录小米帐号,当练手吧.用 Python 来实现吧,由于是写一个Web应用,那么框架就选 Tornado.首先是定义应用的 URL: 复制代码 代码如下: def main():    tornado.options.parse_command_line()    application = tornado.web.Appli

  • 使用python编写脚本获取手机当前应用apk的信息

    前提是已设置ANDROID_HOME环境变量,使用aapt工具获取apk的信息,保存至脚本所在目录下的PackageInfo.txt文件中: import os import tempfile import re tempFile = tempfile.gettempdir() def get_aapt(): if "ANDROID_HOME" in os.environ: rootDir = os.path.join(os.environ["ANDROID_HOME&quo

  • 一个简单的python程序实例(通讯录)

    核心代码: 复制代码 代码如下: #!/usr/bin/python#Filename:friendbook.pyimport cPickle as pimport sysimport timeimport os ab={'Xdex':'cneds@fnedf.com',        'Laexly':'fev@fe.com',        'Fukc':'fexok@ver.com',        'Stifu':'stif@qq.com'} def Dumpfile(list):   

  • python抓取京东商城手机列表url实例代码

    复制代码 代码如下: #-*- coding: UTF-8 -*-'''Created on 2013-12-5 @author: good-temper''' import urllib2import bs4import time def getPage(urlStr):    '''                获取页面内容    '''    content = urllib2.urlopen(urlStr).read()    return content def getNextPag

  • Python实现命令行通讯录实例教程

    1.实现目标 编写一个命令行通讯录程序,可以添加.查询.删除通讯录好友及电话 2.实现方法 创建一个类来表示一个人的信息.使用字典存储每个人的对象,名字作为键. 使用pickle模块永久地把这些对象存储下来. 使用字典内建的方法添加.删除修改人员信息. 3.思维导图 4.编写伪代码 # 1.创建字典用来存储通讯录信息 # 2.创建人员类,包含姓名.关系.电话三个属性 # 3.创建操作类,包含增加.查询.删除人员,退出,保存并退出五个方法 # 4.程序运行 # 5.判断通讯录文件是否存在 # 6.

  • 使用python编写批量卸载手机中安装的android应用脚本

    该脚本的功能是卸载android手机中安装的所有第三方应用,主要是使用adb shell pm.adb uninstall 命令,所以使用的前提是需要配好adb的环境变量,下面上代码: #!/usr/bin/env python import os def uninstall(): os.popen("adb wait-for-device") print "start uninstall..." for packages in os.popen("adb

  • Python实现通讯录功能

    说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间. 该程序实现了用户的增,删,改,查,主要用到sqlite3模块.对于该模块的知识点,请查看我的另一篇文章SQLite-Python 如有更好的建议,请私信,本人将不胜荣幸,让我们一起来学习Python! #-*- coding:utf-8 -*- import sqlite3 #打开本地数据库用于存储用户信息 conn = sqlite3.connect('mysql_person.db')

随机推荐