python模拟通讯录的删除功能_急需一个python通讯录 简单的就行 可以 增加 删除 编辑 搜索 显示 联系人 期末作业要用...

展开全部

要求提的不是很明确,按照最简单的功能来做了。

只记录姓名和电话号码,没有做号码检验。也没有做保存功62616964757a686964616fe59b9ee7ad9431333337626139能。import sys

last_id = 0

class Person:

def __init__(self, name, phone):

self.name = name

self.phone = phone

global last_id

last_id += 1

self.id = last_id

def match(self, filter):

return filter in self.name or filter in self.phone

class AddressBook:

def __init__(self):

self.people = []

def new_person(self, name, phone=''):

self.people.append(Person(name, phone))

def find_person(self, id):

for person in self.people:

if  str(id) == str(person.id):

return person

return None

def modify_person(self, id, name, phone):

person = self.find_person(id)

if person:

person.name = name

person.phone = phone

else:

print "person:", id, " not found"

def delete_person(self, id):

person = self.find_person(id)

if person:

self.people.remove(person)

def  search(self, filter):

return [person for person in self.people if person.match(filter)]

class Menu:

def __init__(self):

self.address_book = AddressBook()

self.choices = {

"1": self.show_people,

"2": self.add_person,

"3": self.remove_person,

"4": self.modify_person,

"5": self.search_person,

"6": self.quit

}

def display_menu(self):

print("""

Address Book Menu

1. Show all People

2. Add Person

3. Remove Person

4. Modify Person

5. Search Person

6. Quit

""")

def run(self):

while True:

self.display_menu()

choice = raw_input("Enter an option: ")

action = self.choices.get(choice)

if action:

action()

else:

print("{0} is not a valid choice".format(choice))

def show_people(self, people=None):

if not people:

people = self.address_book.people

for person in people:

print("{0}: {1} {2}".format(person.id, person.name, person.phone))

def search_person(self):

filter = raw_input("search for: ")

people = self.address_book.search(filter)

self.show_people(people)

def add_person(self):

name = raw_input("Enter a name: ")

phone = raw_input("Enter his/her phone number: ")

self.address_book.new_person(name, phone)

print("{0} has been added.".format(name))

def remove_person(self):

id = raw_input("Enter his/her id: ")

if id:

self.address_book.delete_person(id)

def modify_person(self):

id = raw_input("Enter a person id: ")

name = raw_input("Enter his/her name: ")

phone = raw_input("Enter his/her phone: ")

self.address_book.modify_person(id, name, phone)

def quit(self):

print("Thank you for using your address book today.")

sys.exit(0)

Menu().run()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值