一、前言
参考:https://www.cnblogs.com/poloyy/p/15110297.html
1、什么是模块化程序设计
- 在进行程序设计时将一个大程序按照功能划分为若干小程序模块
- 每个小程序模块完成一个确定的功能
- 并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能
2、自顶向下
- 在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止
- 采用模块化设计编写程序时,不是一开始就逐条编写程序代码
- 而是首先用主程序、子程序等框架把软件的主要结构和流程描述出来
- 以功能块为单位进行程序设计,实现其求解的方法称为模块化
3、函数在模块化设计的作用
- 利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性
- 而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用
二、实战
1、功能简介
实现一个通讯录管理程序,使用函数来实现程序,采用模块化的程序设计方法:
- 划分通讯录程序的功能模块,使用函数实现相应的功能
- 首先实现整体框架,然后再细化每个功能细节
- 最终的程序由多个函数构成,每个函数实现一个单一的功能,整个程序的结构清晰
2、通讯录功能简介
通讯录包含若干联系人,每个联系人包括:姓名、地址、电话 3 项内容。程序提供 4 项基本功能:
- 增加联系人: 用户输入姓名、地址、电话等信息,将信息保存在一个列表中
- 列出联系人: 打印输出所有联系人的信息
- 查询联系人: 用户输入联系人姓名,打印输出该联系人的信息
- 删除联系人: 用户输入联系人姓名,从通讯录中删除该联系人
3、主程序入口
通过命令行界面实现以上功能
4、用什么数据结构来描述一个联系人
- 字典最佳
- 因为联系人可能会有很多个属性
- 假设联系人有三个属性
- 比如{'name': '张三', 'address': '南京', 'phone': '13899120999'}
5、用什么数据结构来描述一个通讯录
通讯录会有多个联系人,所以会有多个字典,可以通过列表来表示通讯录
zhangsan = {'name': '张三', 'address': '南京', 'phone': '13899120999'}
lisi = {'name': '李四', 'address': '北京', 'phone': '137001379998'}
persons = [zhangsan,lisi]
6、一个函数对应一个功能
7、总的代码结构
# 通讯录 persons = [] # 添加联系人 def create_person(): pass # 列出联系人 def list_person(): pass # 查出联系人 def query_person(): pass # 删除联系人 def delete_person(): pass # 主函数 def main(): pass main()
三、全部代码
接下来是将每个函数实现具体的功能代码,全部代码如下:
''' @Date:2022/12/15 13:05 @Author:一加一 ''' # 通讯录 persons = [] # 添加联系人 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) print("成功添加联系人:"+ str(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) else: print("没有查询到该姓名") # 删除联系人 def delete_person(): name = input("请输入要删除的姓名:") for person in persons: if name == person["name"]: persons.remove(person) else: print("没有查询到该姓名") # 主函数 def main(): # while true中,循环条件为true,所以在每一次循环后都会继续循环,形成一个死循环,所以我们就需要加上break语句来终止循环。 while True: # 获取用户输入 input_str = input("1.create preson\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 # 终止while死循环 else: print("无效选择") main()
四、运行效果
D:\install\python3.7\python.exe "E:/02Api test/ApiTest/testcase/practice.py" 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):1 请输入姓名:张三 请输入地址:南京 请输入手机号:13800138009 成功添加联系人:{'name': '张三', 'address': '南京', 'phone': '13800138009'} 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):1 请输入姓名:王五 请输入地址:北京 请输入手机号:138001381111 成功添加联系人:{'name': '王五', 'address': '北京', 'phone': '138001381111'} 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):2 {'name': '张三', 'address': '南京', 'phone': '13800138009'} {'name': '王五', 'address': '北京', 'phone': '138001381111'} 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):3 请输入要查询的姓名:张三 {'name': '张三', 'address': '南京', 'phone': '13800138009'} 没有查询到该姓名 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):4 请输入要删除的姓名:张三 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):2 {'name': '王五', 'address': '北京', 'phone': '138001381111'} 1.create preson 2.list all persons 3.query person 4.delete person 5.quit Enter a number(1-5):5 Process finished with exit code 0
标签:实战,函数,persons,Python,联系人,phone,person,address,name From: https://www.cnblogs.com/Chilam007/p/16985850.html