用Python实现最基本的电话本代码片段
1.[文件]myPhoneBook2.py~6KB
#!/usr/bin/python
#-*-coding:utf-8-*-
importre
classPhoneBook(object):
'''这是一个电话簿脚本。
该脚本能够实现
AddContact:添加联系人信息
ShowContact:查找姓名显示联系人
SaveContacts:存储联系人到TXT文档(存储格式——姓名:号码/号码)
LoadContacts:从txt文档中载入联系人
'''
def__init__(self):
self.contactsDict={}
defAddContact(self):
whileTrue:
name=raw_input('请输入姓名>>>')
name=name.strip()
#姓名必须包含有效字符
ifname!='':
break
print'***姓名不能为空'
whileTrue:
number=raw_input('请输入号码>>>')
number=re.sub(r'\D','',number)
#删除号码中的非数字字符
ifnumber!='':
break
print'***号码只能是数字'
cover=True#若联系人已存在,是否覆盖
ifself.contactsDict.has_key(name):
print'***联系人已存在'
self.ShowContact(name)
whileTrue:
control=raw_input('''
输入"c":覆盖原来号码
输入"n":保留原来号码并存储新号码
输入"q"退出\n>>>''')
ifcontrol.lower()=='n':
cover=False
break
ifcontrol.lower()=='c':
break
ifcontrol.lower()=='q':
returnNone
print'***输入错误'
ifcover:
self.contactsDict[name]=number
else:
ifnumberinself.contactsDict[name]:
print'***号码已经存在'
else:
self.contactsDict[name]=self.contactsDict[name]+'/'+number
defShowContact(self,name):
print'++++++++++++++++++++++++'
ifself.contactsDict.has_key(name):
print'【联系人信息】'
print'【姓名:%s】'%name
numberList=self.contactsDict[name].split('/')
fornuminrange(len(numberList)):
print'【号码%d:%s】'%(num+1,numberList[num])
else:
print'【找不到联系人%s】'%name
print'++++++++++++++++++++++++'
defDeleteNumber(self,name):
ifself.contactsDict.has_key(name):
self.ShowContact(name)
number=self.contactsDict[name].split('/')
whileTrue:
print'''
请输入要删除号码的序号
或者输入"a"删除该联系人
或者输入"q"退出(不删除)
(若联系人号码被全部删除,该联系人也将被删除)'''
control=raw_input('>>>')
ifcontrol.lower()=='q':
break
elifcontrol.lower()=='a':
delself.contactsDict[name]
break
elifcontrol.isdigit()andint(control)
delnumber[int(control)-1]
self.contactsDict[name]='/'.join(number)
break
else:
print'***输入有误'
defLoadContacts(self):
'''
try:
PhoneBook=open('PhoneBook.txt','a+')
contacts=PhoneBook.read()
ifcontacts=='':
print'***电话簿为空'
else:
ContactsList=contacts.split('\n')
forcontactinContactsList:
ifnotcontact=='':
contact=contact.split(':')
name=contact[0]
number=contact[1]
self.contactsDict[name]=number
finally:
PhoneBook.close()
'''
self.contactsDict=
defSaveContacts(self):
try:
ifself.contactsDict:
PhoneBook=open('PhoneBook.txt','w')
forname,numberinself.contactsDict.items():
line=name+':'+number
PhoneBook.write(line)
PhoneBook.write('\n')
else:
print'***没有联系人信息'
finally:
PhoneBook.close()
if__name__=='__ma
1c42
in__':
myPhoneBook=PhoneBook()
myPhoneBook.LoadContacts()
try:
whileTrue:
raw_input('按回车键继续')
print'''
--------------------------------
输入a:添加联系人
输入s:显示联系人信息
输入d:删除联系人
输入q:退出
--------------------------------'''
control=raw_input('>>>')
ifcontrol.lower()=='a':
myPhoneBook.AddContact()
elifcontrol.lower()=='s':
name=raw_input('请输入要查找的联系人姓名\n>>>')
myPhoneBook.ShowContact(name)
elifcontrol.lower()=='d':
name=raw_input('请输入要删除的联系人姓名\n>>>')
myPhoneBook.DeleteNumber(name)
elifcontrol.lower()=='q':
break
else:
print'***输入有误'
finally:
myPhoneBook.SaveContacts()
领取专属 10元无门槛券
私享最新 技术干货