实现一个通讯录管理程序,使用函数来实现程序,采用模块化的程序设计方法:
通讯录包含若干联系人,每个联系人包括:姓名、地址、电话 3 项内容。程序提供 4 项基本功能:
通过命令行界面实现以上功能,程序 addr-manage.py 运行时首先打印一个菜单
C:\> python addr-manage.py
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5):
数字选项 | 功能描述 |
---|---|
1. create person | 增加联系人 |
2. list all persons | 列出联系人 |
3. query person | 查询联系人 |
4. delete person | 删除联系人 |
5. quit | 退出通讯录程序 |
姓名 | 地址 | 电话 |
---|---|---|
张三 | 南京 | 12306 |
{
"name": "张三",
"address": "南京",
"phone": "12306"
}
那么这是一个联系人
通讯录会有多个联系人,所以会有多个字典,可以通过列表来表示通讯录
zhangSan = {'name': '张三', 'address': '南京', 'phone': '12306'}
liSi = {'name': '李四', 'address': '北京', 'phone': '10086'}
persons = [zhangSan, liSi]
功能模块 | 对应的函数 |
---|---|
增加联系人 | create_person |
列出联系人 | list_person |
查询联系人 | query_person |
删除联系人 | delete_person |
主控模块 | main |
# 通讯录
persons = []
# 添加联系人
def create_person():
pass
# 列出联系人
def list_person():
pass
# 查出联系人
def query_person():
pass
# 删除联系人
def delete_person():
pass
# 主函数
def main():
pass
main()
# 主函数
def main():
while True:
# 获取用户输入
input_str = input("1. create person\n"
"2. list all persons\n"
"3. query person\n"
"4. delete person\n"
"5. quit\n"
"Enter a number(1-5): "
)
if input_str == "1":
create_person()
elif input_str == "2":
list_person()
elif input_str == "3":
query_person()
elif input_str == "4":
delete_person()
elif input_str == "5":
break
else:
print("无效选择")
# 添加联系人
def create_person():
name = input("请输入姓名:")
address = input("请输入地址:")
phone = input("请输入手机:")
if name and address and phone:
person = {
"name": name,
"address": address,
"phone": phone
}
persons.append(person)
# 列出联系人
def list_person():
for person in persons:
print(person)
# 查出联系人
def query_person():
name = input("请输入需要查找的姓名:")
for person in persons:
if name == person["name"]:
print(person)
# 删除联系人
def delete_person():
name = input("请输入需要查找的姓名:")
for person in persons:
if name == person["name"]:
persons.remove(person)
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 1
请输入姓名:poloyy
请输入地址:广州荔湾区
请输入手机:13501111111
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 2
{'name': 'poloyy', 'address': '广州荔湾区', 'phone': '13501111111'}
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 3
请输入需要查找的姓名:poloyy
{'name': 'poloyy', 'address': '广州荔湾区', 'phone': '13501111111'}
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 4
请输入需要查找的姓名:poloyy
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 2
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 5
Process finished with exit code 0