一道关于Python函数练习题,希望对你学习函数有帮助

功能简介

实现一个通讯录管理程序,使用函数来实现程序,采用模块化的程序设计方法:

  • 划分通讯录程序的功能模块,使用函数实现相应的功能
  • 首先实现整体框架,然后再细化每个功能细节
  • 最终的程序由多个函数构成,每个函数实现一个单一的功能,整个程序的结构清晰

通讯录功能简介

通讯录包含若干联系人,每个联系人包括:姓名、地址、电话 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

总的代码结构

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 通讯录
persons = []

# 添加联系人
def create_person():
    pass

# 列出联系人
def list_person():
    pass

# 查出联系人
def query_person():
    pass

# 删除联系人`# 主函数
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 delete_person():
    pass

# 主函数
def main():
    pass

main()

主函数代码实现

  1. 获取用户输入的选择
  2. 根据选择执行对应的功能
  3. 不断重复第一步

添加联系人代码实现

# 添加联系人
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)

删除联系人代码实现

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 删除联系人
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
posted @ 2022-10-07 20:27  I'm_江河湖海  阅读(5)  评论(0编辑  收藏  举报