- 论坛徽章:
- 0
|
本帖最后由 xiaomayi0323 于 2010-03-09 17:36 编辑
依据楼主修改的,编辑器使用Ulipad,可以正常运行。
这段代码还有个问题,添加联系人,退出程序后,再运行程序,结果先前添加的联系人信息被清空了,但我并没有执行删除操作。- #!/usr/bin/python
- # coding: gb2312
- # filename: addbook_1.py
- import cPickle as p
- class Person:
- '''仅献给Pyhon初学者,老鸟飘过。相信学过Python的人一定都看过Python简明教程,
- 文章的最后作者给我们留下了一道练习,对,就是这个地址簿程序。当我们写完这个程序的时候
- 我们就可以说自己是一位Python程序员了,但就这样一道看似简单的问题可能会让我们这些
- 初学者有种蜀道难的感觉,相信大家都有过这样的感觉,毕竟是名新手,才接触都会有这样的感觉。
- 与其说程序是写出来的不如说是改出来的。现在我把这个地址簿程序发出来仅供新手朋友们
- 做个参考,但看过之后一定要用自己的思路另写一份哦!'''
- def __init__ (self):
- self.info = ''
- self.name = ''
- self.dict = {self.name: self.info}
- try:
- self.f = open ('test.data', 'w')
- except:
- print '已在本程序根目录生成数据文件'
- # def __del__ (self):
- # self.f.close
- def printall (self):
- print '姓名\t个人信息'
- for self.name, self.info in self.dict.items():
- print '%s\t%s' % (self.name, self.info)
- def dele (self):
- self.name = raw_input('请输入想删除的联系人姓名:')
- if self.name in self.dict.keys():
- del self.dict[self.name]
- print '删除成功!\n'
- p.dump(self.dict, self.f)
-
- else:
- print '数据库中没有该联系人的信息,请检查输入是否有误!\n'
- def add (self):
- self.name = raw_input('请输入想添加的联系人姓名:')
- if self.name in self.dict.keys():
- print '数据库中已经有该联系人的信息,请确认输入无误!\n'
- else:
- self.info = raw_input('请输入联系人信息,如email,tel等以空格间隔:')
- self.dict[self.name] = self.info
- print '添加成功!\n'
- p.dump(self.dict, self.f)
- def edit (self):
- self.name = raw_input('请输入要修改的联系人姓名:')
- if self.name in self.dict.keys():
- print '姓名输入正确!'
- self.info = raw_input('请输入要修改的联系人信息:')
- self.dict [self.name] = self.info
- print '修改成功!\n'
- print '现在该联系人的信息为: 姓名 %s 电话 %s \n' % (self.name, self.info)
- p.dump(self.dict, self.f)
- else:
- print '数据库中没有该联系人的信息,请检查输入是否有误!\n'
- def search (self):
- self.name = raw_input('请输入想要搜索的联系人姓名:')
- if self.name in self.dict.keys():
- print '你查询的联系人姓名是: %s 个人信息是: %s\n' % (self.name, self.dict[self.name])
- else:
- print '数据库中没有该联系人的信息,请检查输入是否有误!\n'
- if __name__ == '__main__':
-
- print Person.__doc__
- person = Person ()
- while True:
- answer = raw_input('1.浏览联系人-2.删除联系人-3.添加联系人-4.修改联系人电话-5.搜索联系人-6.退出本程序:')
- if answer == '1':
- person.printall()
- elif answer == '2':
- person.dele()
- elif answer == '3':
- person.add()
- elif answer == '4':
- person.edit()
- elif answer == '5':
- person.search()
- elif answer == '6':
- break
- else:
- print '请按提示输入操作数字!\n'
-
- print '谢谢使用,下次再见!'
复制代码 |
|