您的位置:首页 > 编程语言 > Python开发

Python 之 地址簿程序

2016-06-28 18:07 288 查看
最近在看《简明 Python 教程》,作者在16章留了个问题,通过前面章节的学习,设计一个“地址簿程序,在这个程序中,你可以添加、修改、删除和搜索你的联系人(朋友、家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码)。这些详细信息应该被保存下来以便以后提取“,网上发现已经有很多网友读了《简明
Python 教程》,并贴出了自己的”杰作“。我也在此班门弄斧,望大家多多指教!

#!/usr/bin/python
#encoding: utf-8
#Filename: member_ver2.py

import cPickle as p
import os
import sys

class Person:
filename = 'address.txt'
addressList = {}

def __init__(self):
if os.path.exists(self.filename):
f = file(self.filename)
self.addressList = p.load(f)
f.close()

def save(self):
f = file(self.filename, 'w')
p.dump(self.addressList, f)
f.close()
print('saved successfully.')

def add(self, name, tel, email, type = 'friend'):
if name in self.addressList.keys():
print('The name is exist')
else:
self.addressList[name] = [tel, email, type]
self.save()

print('Added successfully!')

def modify(self, name, tel, email, types = 'friend'):
if name in self.addressList.keys():
self.addressList[name] = [tel, email, types]
self.save()
print('Modified successfully!')
else:
print('The name is not exists!')

def search(self, name):
if name in self.addressList.keys():
print('Name: %s\t Tel: %s\t email: %s\t types: %s ' % (name, self.addressList[name][0], self.addressList[name][1], self.addressList[name][2]))
else:
print('The name is not exist')

def show(self):
print('Name	\t	Tel	\t	Email	\t Type')
for name, info in self.addressList.items():
print(name, info[0], info[1], info[2])

def run(self):
while True:
cmd = raw_input('Please input command(add/modify/search/delete/show/quit) ' )
if cmd  == 'add':
while True:
name = raw_input('Enter name: ')
if name not in self.addressList.keys():
tel = raw_input('Enter tel: ')
email = raw_input('Enter email: ')
types = raw_input('Enter type(default type is "friend"): ')
if types != '':
self.add(name, tel, email, types)
else:
self.add(name, tel, email)
else:
print('The name you added has exist!')
flag = raw_input('Do you want to continue to add?(y/n)')
if flag == 'y' or flag == 'Y':
continue
break
elif cmd == 'modify':
while True:
name = raw_input('Enter name: ')
if name in self.addressList.keys():
tel = raw_input('Enter tel: ')
email = raw_input('Enter email: ')
types = raw_input('Enter type(default type is "friend"): ')
if tel == '':
tel = self.addressList[name][0]
if email == '':
email = self.addressList[name][1]
if types != '':
self.modify(name, tel, email, types)
else:
self.modify(name,tel,email)
else:
print('The name you modifed is not exist!')
flag = raw_input('Do you want to continue to modify?(y/n)')
if flag == 'y' or flag == 'Y':
continue
break
elif cmd == 'search':
while True:
name = raw_input('Enter name: ')
self.search(name)
flag = raw_input('Do you want to continue to search?(y/n)')
if flag == 'y' or flag == 'Y':
continue
break
elif cmd == 'delete':
while True:
name = raw_input('Enter name: ')
self.delete(name)
flag = raw_input('Do you want to continue to delete?(y/n)')
if flag == 'y' or flag == 'Y':
continue
break

elif cmd == 'show':
self.show()
elif cmd == 'quit' or cmd == 'q':
print('quit')
sys.exit()
else:
print('Wrong command,try again')

if __name__ == '__main__':

per = Person()
per.run()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: