下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#!/usr/bin/python# -*- Coding: utf-8 -*-import reclass PhoneBook(object): '''这是一个电话簿脚本。 该脚本能够实现 AddContact:添加联系人信息 ShowContact:查找姓名显示联系人 SaveContacts:存储联系人到 TXT 文档(存储格式——姓名:号码/号码) LoadContacts:从 txt 文档中载入联系人 ''' def __init__(self): self.contactsDict = {} def AddContact(self): while True: name = raw_input('请输入姓名>>>') name = name.strip() # 姓名必须包含有效字符 if name != '': break print '***姓名不能为空' while True: number = raw_input('请输入号码>>>') number = re.sub(r'\D','',number) # 删除号码中的非数字字符 if number != '': break print '***号码只能是数字' cover = True #若联系人已存在,是否覆盖 if self.contactsDict.has_key(name): print '***联系人已存在' self.ShowContact(name) while True: control = raw_input('''输入 "c":覆盖原来号码输入 "n":保留原来号码并存储新号码输入 "q" 退出\n>>>''') if control.lower() == 'n': cover = False break if control.lower() == 'c': break if control.lower() == 'q': return None print '***输入错误' if cover: self.contactsDict[name] = number else: if number in self.contactsDict[name]: print '***号码已经存在' else: self.contactsDict[name] = self.contactsDict[name] + '/' + number def ShowContact(self,name): print '++++++++++++++++++++++++' if self.contactsDict.has_key(name): print '【联系人信息】' print '【姓名: %s】' % name numberList = self.contactsDict[name].split('/') for num in range(len(numberList)): print '【号码%d: %s】' % (num+1,numberList[num]) else: print '【找不到联系人%s】' % name print '++++++++++++++++++++++++' def DeleteNumber(self,name): if self.contactsDict.has_key(name): self.ShowContact(name) number = self.contactsDict[name].split('/') while True: print '''请输入要删除号码的序号或者输入 "a" 删除该联系人或者输入 "q" 退出(不删除)(若联系人号码被全部删除,该联系人也将被删除)''' control = raw_input('>>>') if control.lower() == 'q': break elif control.lower() == 'a': del self.contactsDict[name] break elif control.isdigit() and int(control) <= len(number): del number[int(control)-1] self.contactsDict[name] = '/'.join(number) break else: print '***输入有误' def LoadContacts(self): ''' try: PhoneBook = open('PhoneBook.txt','a+') contacts = PhoneBook.read() if contacts == '': print '***电话簿为空' else: ContactsList = contacts.split('\n') for contact in ContactsList: if not contact == '': contact = contact.split(':') name = contact[0] number = contact[1] self.contactsDict[name] = number finally: PhoneBook.close() ''' self.contactsDict = {line.split(':')[0]: line.split(':')[1] for line in open('PhoneBook.txt','a+').readlines()} def SaveContacts(self): try: if self.contactsDict: PhoneBook = open('PhoneBook.txt','w') for name,number in self.contactsDict.items(): line = name + ':' + number PhoneBook.write(line) PhoneBook.write('\n') else: print '***没有联系人信息' finally: PhoneBook.close()if __name__ == '__main__': myPhoneBook = PhoneBook() myPhoneBook.LoadContacts() try: while True: raw_input('按回车键继续') print '''-------------------------------- 输入 a:添加联系人 输入 s:显示联系人信息 输入 d:删除联系人 输入 q:退出--------------------------------''' control = raw_input('>>>') if control.lower() == 'a': myPhoneBook.AddContact() elif control.lower() == 's': name = raw_input('请输入要查找的联系人姓名\n>>>') myPhoneBook.ShowContact(name) elif control.lower() == 'd': name = raw_input('请输入要删除的联系人姓名\n>>>') myPhoneBook.DeleteNumber(name) elif control.lower() == 'q': break else: print '***输入有误' finally: myPhoneBook.SaveContacts()
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的Python 实现简单的电话本功能全部内容,希望文章能够帮你解决Python 实现简单的电话本功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)