天马行空工作室

 找回密码
 加入天马
搜索
查看: 3367|回复: 1

python 简单通讯录

[复制链接]
发表于 2014-8-28 21:33:58 | 显示全部楼层 |阅读模式
知识点:
1.基本文件操作
2.cPickle 模块使用    地址:http://blog.csdn.net/bh20077/article/details/6070278
3.re 模块使用   地址:http://www.cnblogs.com/sevenyuan/archive/2010/12/06/1898075.html

**********************************************************


  1. import sys  
  2. import os  
  3. import string  
  4. import re  
  5. import cPickle as p


  6. class Item:  #定义类
  7.         def __init__(self,name,phone,QQ):
  8.                 self.name =name
  9.                 self.phone =phone
  10.                 self.QQ =QQ

  11. def menu(): #定义菜单项
  12.         print "         The function menu            "
  13.         print "+************************************+"
  14.         print "|     1.Insert    |    2.Delete      |"
  15.         print "|     3.Modify    |    4.Display     |"
  16.         print "|     5.Find      |    6.Sort        |"
  17.         print "|     7.Save      |    8.Quit        |"
  18.         print "+------------------------------------+"
  19.         print ""

  20. def begin(): #检查数据文件是否存在,如果存在读取数据信息
  21.         global itemlist
  22.         if os.path.exists("d:\\hello2\\listfile.txt")==True:
  23.                 listfile =open("d:\\hello2\\listfile.txt","r")
  24.                 if len(listfile.read()) !=0:
  25.                         itemlist =p.load(open("d:\\hello2\\listfile.txt","r"))
  26.                 listfile.close()
  27.                
  28. def save():  #保存数据信息
  29.         global itemlist
  30.         listfile = open("d:\\hello2\\listfile.txt","w+")
  31.         p.dump(itemlist,listfile)
  32.         listfile.close()
  33.         print "Save Done!"
  34.         
  35. def insert(): #增加用户
  36.         _rPhone = re.compile(r'1[0-9]{10}')   #手机号规则检测
  37.         _rQQ=re.compile(r'[1-9][0-9]{4,9}')   #QQ号规则检测
  38.         while True:
  39.                 name =raw_input("Please input name:")
  40.                 if len(name)>10:
  41.                         continue
  42.                 else:
  43.                         break
  44.         while True:
  45.                 phone =raw_input("Please input phone:")
  46.                 if not _rPhone.match(phone):
  47.                         continue
  48.                 else:
  49.                         break
  50.         while True:
  51.                 QQ =raw_input("Please input QQ:")
  52.                 if not _rQQ.match(QQ):
  53.                         continue
  54.                 else:
  55.                         break
  56.         item = Item(name,phone,QQ)
  57.         global itemlist
  58.         itemlist.append(item)
  59.         
  60.                         
  61. def output(item):
  62.         print '%-15s%-15s%-15s'%(item.name,item.phone,item.QQ)
  63. def display():  #显示所有通讯录信息
  64.         global itemlist
  65.         l =len(itemlist)
  66.         print 'name           phone           QQ'
  67.         for i in range(0,l):
  68.                 output(itemlist[i])
  69.         print ""
  70. def find():   #显示指定用户信息
  71.         name =raw_input("Please input name you want to find:")
  72.         global itemlist
  73.         l =len(itemlist)
  74.         print 'name           phone           QQ'
  75.         for i in range(0,l):
  76.                 if itemlist[i].name == name:
  77.                         output(itemlist[i])
  78.                         

  79.         
  80. def delete():  #删除用户
  81.         name =raw_input("Please input name you want to delete:")
  82.         global itemlist
  83.         l =len(itemlist)
  84.         for i in range(0,l-1):
  85.                 if (itemlist[i].name == name):
  86.                         itemlist.pop(i)
  87.         
  88. def update(item):
  89.         _rPhone = re.compile(r'1[0-9]{10}')
  90.         _rQQ=re.compile(r'[1-9][0-9]{4,9}')
  91.         while True:
  92.                 item.name =raw_input("Please input name:")
  93.                 if len(name)>10:
  94.                         continue
  95.                 else:
  96.                         break
  97.         while True:
  98.                 item.phone =raw_input("Please input phone:")
  99.                 if not _rPhone.match(phone):
  100.                         continue
  101.                 else:
  102.                         break
  103.         while True:
  104.                 item.QQ =raw_input("Please input QQ:")
  105.                 if not _rQQ.match(QQ):
  106.                         continue
  107.                 else:
  108.                         break
  109.         
  110. def modify():  #修改用户信息
  111.         name = raw_input("Please the name you want to modify:")
  112.         global itemlist
  113.         l = len(itemlist)
  114.         for i in range(0,l):
  115.                 if (itemlist[i].name == name):
  116.                         update(itemlist[i])
  117.         print "Update done!"
  118.         
  119. def sort():   #排序
  120.         global itemlist
  121.         itemlist.sort(None,key = lambda item:item.name)
  122.         
  123.                


  124. itemlist =[]
  125. begin()        
  126. while True:
  127.         menu()
  128.         case =int(raw_input())
  129.         if case ==1:
  130.                 insert()
  131.         elif case ==2:
  132.                 delete()
  133.         elif case ==3:
  134.                 modify()
  135.         elif case ==4:
  136.                 display()
  137.         elif case ==5:
  138.                 find()
  139.         elif case ==6:
  140.                 sort()
  141.         elif case ==7:
  142.                 save()
  143.         else:
  144.                 break
  145. print "Bye!!!"

  146.         

  147.         
复制代码







发表于 2015-4-15 15:39:11 | 显示全部楼层
顶一个  学习了
您需要登录后才可以回帖 登录 | 加入天马

本版积分规则

Archiver|手机版|小黑屋|天马行空工作室 ( 京ICP备12003429号  

GMT+8, 2019-9-22 05:29 , Processed in 1.226235 second(s), 21 queries .

Powered by Discuz! v8

© 2010-2014 python 简单通讯录 - Python 天马行空工作室

快速回复 返回顶部 返回列表