Python 函数与模块化程序设计实战:通讯录管理系统

Mia
Mia
发布时间:2026-10-14| 4人浏览过
原创

本文详解 Python 函数与模块化程序设计概念,通过自顶向下设计方法,构建一个包含增删改查功能的通讯录管理系统。文章解析字典与列表的数据结构应用,提供完整的 Python 代码实现及命令行交互演示,帮助开发者理解函数在提升代码可读性与维护性中的作用。

Python 函数

一、什么是模块化程序设计?

  • 在编写程序时,将大型项目按功能拆分为多个小型模块。
  • 每个模块负责完成一个明确且独立的功能任务。
  • 模块间建立必要的交互联系,通过协作共同实现整体程序功能。

1、 编写流程——自顶向下

  • 处理复杂程序时,通常采用自顶向下的设计思路:先将大问题分解为若干子问题,再对子问题进行细化,直至分解为易于解决的小模块。
  • 采用模块化设计时,并非一开始就逐行编写具体代码。
  • 而是先构建主程序与子程序的框架结构把软件的主要结构和流程描述出来。
  • 以功能块为单位进行程序设计,这种实现求解的方法被称为模块化。

2、函数在模块化设计的作用

利用函数不仅能实现程序模块化,使设计更简单直观,提高代码的可读性和可维护性,还能将常用计算或操作封装为通用函数,供程序随时调用。

二、实战

1、功能简介

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

  • 划分通讯录的功能模块,并通过函数实现各项具体功能。
  • 首先搭建整体框架,随后逐步细化每个功能细节。
  • 最终程序由多个函数组成,每个函数仅实现单一功能,使整体结构清晰明了。

2、通讯录功能简介

通讯录包含若干联系人,每个联系人记录包括姓名、地址、电话 3 项内容。程序提供 4 项基本功能:

  • 增加联系人: 用户输入姓名、地址、电话等信息,将信息保存在一个列表中。
  • 列出联系人: 打印输出所有联系人的信息。
  • 查询联系人: 用户输入联系人姓名,打印输出该联系人的详细信息。
  • 删除联系人: 用户输入联系人姓名,从通讯录列表中删除该联系人。

3、主程序入口

通过命令行界面实现上述功能,程序 addr-manage.py 运行时首先打印一个菜单选项。


 //路径
1. create person
2. list all persons
3. query person
4. delete person
5. quit
Enter a number(1-5): 

4、主程序包含以下功能

5、用什么数据结构来描述一个联系人

  • 使用字典最佳。
  • 因为联系人可能包含多个属性。
  • 假设联系人有三个属性。

 

字典表示联系人:


{
    "name": "张三",
    "address": "南京",
    "phone": "12306"
}

那么这是一个联系人。

6、用什么数据结构来描述一个通讯录

通讯录包含多个联系人,即多个字典,可以通过列表来表示整个通讯录。


zhangSan = {'name': '张三', 'address': '南京', 'phone': '12306'}
liSi = {'name': '李四', 'address': '北京', 'phone': '10086'}
persons = [zhangSan, liSi]

一个函数对应一个功能:。

总的代码结构:


# 通讯录
persons = []


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


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


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


# 删除联系人
def delete_person():
    pass


# 主函数
def main():
    pass


main()

三、函数实现

1、主函数代码实现

  • 获取用户输入的选择。
  • 根据选择执行对应的功能逻辑。
  • 不断重复第一步操作,保持程序运行。

# 主函数
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("无效选择")
 

2、添加联系人代码实现


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

3、列出联系人代码实现


# 列出联系人
def list_person():
    for person in persons:
        print(person)
 

4、查出联系人代码实现


# 查出联系人
def query_person():
    name = input("请输入需要查找的姓名:")
    for person in persons:
        if name == person["name"]:
            print(person)

5、删除联系人代码实现


# 删除联系人
def delete_person():
    name = input("请输入需要查找的姓名:")
    for person in persons:
        if name == person["name"]:
            persons.remove(person)

6、运行效果


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

到此这篇关于Python 函数简单易理解版的文章就介绍到这了,更多相关Python 函数内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。