Python学习之模块化程序设计示例详解
目录
关于模块化程序设计水果仓库功能简介主功能实现与程序入口实现添加功能实现列出所有信息功能实现查询信息功能实现删除信息功能完整程序如下关于模块化程序设计
什么是模块化程序设计?
程序设计的模块化指的是在进行程序设计时,把一个大的程序功能划分为若干个小的程序模块。每一个小程序模块实现一个确定的功能,并且在这些小程序模块实现的功能之间建立必要的联系,通过各个小模块之间的互相协作完成整个大功能实现的方法。
模块化设计程序的方法?
一般在针对实现比较复杂程序的情况下,采用的是自上而下的方法。将复杂的场景划分为几个部分,每一个部门再进行针对性的细化,直到分解为比较好的解决方案为止。采用模块化设计程序,并不是一开始就逐条的编写程序代码,而是首先用主程序、子程序等框架把软件的主要结构和流程描述出来,以功能划分的模块为单位进行程序设计。利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性,而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用。该章节模拟一个水果仓库管理程序。在前面章节中,程序的各项功能代码全部集中在一个代码段中,程序的结构不清晰。该章节使用函数来实现程序,采用模块化的程序设计方法:
划分 水果仓库 程序的功能模块,使用函数实现相应的功能首先实现整体框架,然后再细化每个功能细节最终的程序由多个函数构成,每个函数实现一个单一的功能,整个程序的结构清晰水果仓库功能简介
编写程序 fruits_warehouse 模拟 水果仓库 的一个简单管理系统,水果仓库 包含若干水果,每种水果包括:名称、重量、日期 3 项内容。程序提供 4 项基本功能:
添加水果: 用户输入水果的名称、重量、日期信息,将信息保存在一个列表中列出当前所有水果: 打印输出当前所有水果的信息查询水果: 用户输入水果的名称,打印输出该水果的信息删除水果: 用户输入水果的名称,删除该水果的信息通过命令行界面实现以上功能,程序 fruits_warehouse 运行时首先打印一个菜单,如下所示:
1: 添加水果信息 2: 显示所有水果 3: 查询水果信息 4: 删除水果信息 5: 退出 请根据提示的数字 1-5 输入要执行的操作:
所以我们定义一个 获取选项的函数,如下:
def get_option(): print("1: 添加水果信息") print("2: 显示所有水果") print("3: 查询水果信息") print("4: 删除水果信息") print("5: 退出") option = input("请根据提示输入要执行的操作: 数字 1-5 ") return option get_option() # >>> 执行结果如下: # >>> 1: 添加水果信息 # >>> 2: 显示所有水果 # >>> 3: 查询水果信息 # >>> 4: 删除水果信息 # >>> 5: 退出 # >>> 请根据提示的数字 1-5 输入要执行的操作:
主功能实现与程序入口
总共有 5 个选项,用户输入对应的数字选择相应的功能,如下表所示:
数字选项 | 对应功能 |
---|---|
1 : add_fruit | 添加水果信息 |
2:search_all_fruits | 列出当前所有水果信息 |
3:query_fruit | 查询水果信息 |
4:del_fruit | 删除水果信息 |
5:quit | 退出 |
编写对应的函数,这里我们先写出函数的定义,暂时使用 pass 占位,代码如下
def add_fruit(): # 添加水果信息 pass def search_all_fruits(): # 列出当前所有水果信息 pass def query_fruit(): # 查询水果信息 pass def del_fruit(): # 删除水果信息 pass def main(): # 主程入口 pass
接下来我们就实现以下 主程入口与获取用户的输入
fruits =[] # 创建一个空列表 fruits,fruits 记录所有水果的信息 def get_option(): # 获取用户输入 print("1: 添加水果信息") print("2: 显示所有水果") print("3: 查询水果信息") print("4: 删除水果信息") print("5: 退出") option = input("请根据提示输入要执行的操作: 数字 1-5 ") return option def add_fruit(): # 添加水果信息 pass def search_all_fruits(): # 列出当前所有水果信息 pass def query_fruit(): # 查询水果信息 pass def del_fruit(): # 删除水果信息 pass def main(): # 主程入口 while True: option = get_option() if option == "1": add_fruit() elif option == "2": search_all_fruits() elif option == "3": query_fruit() elif option == "4": ddel_fruit() elif option == "5": break else: print("输入错误!请重新输入!") main()
实现添加功能
def add_fruit(): # 添加水果信息 name = input("name: ") weight = input("weight: ") date = input("date: ") fruit = {"name": name, "weight": weight, "date": date} fruits.append(fruit)
实现列出所有信息功能
def search_all_fruits(): # 列出当前所有水果信息 if len(fruits) == 0: print("**************") print("当前仓库没有水果") print("**************") else: for fruit in fruits: print(f"%s,%s,%s" % (fruit["name"], fruit["weight"], fruit["date"]))
实现查询信息功能
def query_fruit(): # 查询水果信息 name = input("name: ") if len(fruits) == 0: print("***************") print("当前仓库没有水果") print("***************") else: for fruit in fruits: if fruit["name"] == name: print(f"%s,%s,%s" % (fruit["name"], fruit["weight"], fruit["date"]))
实现删除信息功能
def del_fruit(): # 删除水果信息 name = input("name: ") if len(fruits) == 0: print("***************") print("当前仓库没有水果") print("***************") else: for fruit in fruits: if fruit["name"] == name: fruits.remove(fruit) break
完整程序如下
注意:这个完整程序的功能其实并不算完整,只能说是实现了一个基础功能;比如一个场景,当我们要查询、删除的水果并不在 fruits 列表 的时候,这里并没有做校验,只是校验了当前水果列表是否存在水果(长度判断)。
所以大家可以自己动手完善一下。
# coding:utf-8 """ @Author:Neo @Date:2020/1/14 @Filename:fruits_warehouse.py @Software:Pycharm """ fruits = [] # 创建一个空列表 fruits,fruits 记录所有水果的信息 def get_option(): # 获取用户输入 print("1: 添加水果信息") print("2: 显示所有水果") print("3: 查询水果信息") print("4: 删除水果信息") print("5: 退出") option = input("请根据提示 数字 1-5 输入要执行的操作: ") return option def add_fruit(): # 添加水果信息 name = input("name: ") weight = input("weight: ") date = input("date: ") fruit = {"name": name, "weight": weight, "date": date} fruits.append(fruit) print(fruits) def search_all_fruits(): # 列出当前所有水果信息 if len(fruits) == 0: print(" ") print("**************") print("当前仓库没有水果") print("**************") print(" ") else: for fruit in fruits: print(f"%s,%s,%s" % (fruit["name"], fruit["weight"], fruit["date"])) def query_fruit(): # 查询水果信息 name = input("name: ") if len(fruits) == 0: print(" ") print("**************") print("当前仓库没有水果") print("**************") print(" ") else: for fruit in fruits: if fruit["name"] == name: print(f"%s,%s,%s" % (fruit["name"], fruit["weight"], fruit["date"])) def del_fruit(): # 删除水果信息 name = input("name: ") if len(fruits) == 0: print(" ") print("**************") print("当前仓库没有水果") print("**************") print(" ") else: for fruit in fruits: if fruit["name"] == name: fruits.remove(fruit) break def main(): # 主程入口 while True: option = get_option() if option == "1": add_fruit() elif option == "2": search_all_fruits() elif option == "3": query_fruit() elif option == "4": del_fruit() elif option == "5": break else: print("输入错误!请重新输入!") main()
以上就是Python学习之模块化程序设计示例详解的详细内容,更多关于Python模块化程序设计的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?