Python学习之模块化程序设计示例详解
目录
- 关于模块化程序设计
- 水果仓库功能简介
- 主功能实现与程序入口
- 实现添加功能
- 实现列出所有信息功能
- 实现查询信息功能
- 实现删除信息功能
- 完整程序如下
关于模块化程序设计 什么是模块化程序设计?
程序设计的模块化指的是在进行程序设计时,把一个大的程序功能划分为若干个小的程序模块。每一个小程序模块实现一个确定的功能,并且在这些小程序模块实现的功能之间建立必要的联系,通过各个小模块之间的互相协作完成整个大功能实现的方法。
模块化设计程序的方法?
- 一般在针对实现比较复杂程序的情况下,采用的是自上而下的方法。将复杂的场景划分为几个部分,每一个部门再进行针对性的细化,直到分解为比较好的解决方案为止。
- 采用模块化设计程序,并不是一开始就逐条的编写程序代码,而是首先用主程序、子程序等框架把软件的主要结构和流程描述出来,以功能划分的模块为单位进行程序设计。
- 利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性,而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用。
- 划分 水果仓库 程序的功能模块,使用函数实现相应的功能
- 首先实现整体框架,然后再细化每个功能细节
- 最终的程序由多个函数构成,每个函数实现一个单一的功能,整个程序的结构清晰
水果仓库功能简介 编写程序 fruits_warehouse 模拟 水果仓库 的一个简单管理系统,水果仓库 包含若干水果,每种水果包括:名称、重量、日期 3 项内容。程序提供 4 项基本功能:
- 添加水果: 用户输入水果的名称、重量、日期信息,将信息保存在一个列表中
- 列出当前所有水果: 打印输出当前所有水果的信息
- 查询水果: 用户输入水果的名称,打印输出该水果的信息
- 删除水果: 用户输入水果的名称,删除该水果的信息
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 optionget_option()# >>> 执行结果如下:# >>> 1: 添加水果信息# >>> 2: 显示所有水果# >>> 3: 查询水果信息# >>> 4: 删除水果信息# >>> 5: 退出# >>> 请根据提示的数字 1-5 输入要执行的操作:
文章图片
主功能实现与程序入口
总共有 5 个选项,用户输入对应的数字选择相应的功能,如下表所示:
数字选项 | 对应功能 |
---|---|
1 : add_fruit | 添加水果信息 |
2:search_all_fruits | 列出当前所有水果信息 |
3:query_fruit | 查询水果信息 |
4:del_fruit | 删除水果信息 |
5:quit | 退出 |
def add_fruit():# 添加水果信息passdef search_all_fruits(): # 列出当前所有水果信息passdef query_fruit():# 查询水果信息passdef del_fruit():# 删除水果信息passdef main():# 主程入口pass
接下来我们就实现以下 主程入口与获取用户的输入
fruits =[]# 创建一个空列表 fruits,fruits 记录所有水果的信息def get_option():# 获取用户输入print('1: 添加水果信息')print('2: 显示所有水果')print('3: 查询水果信息')print('4: 删除水果信息')print('5: 退出')option = input('请根据提示输入要执行的操作: 数字 1-5 ')return optiondef add_fruit():# 添加水果信息passdef search_all_fruits(): # 列出当前所有水果信息passdef query_fruit():# 查询水果信息passdef del_fruit():# 删除水果信息passdef 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':breakelse: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 optiondef 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)breakdef 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':breakelse:print('输入错误!请重新输入!')main()
【Python学习之模块化程序设计示例详解】以上就是Python学习之模块化程序设计示例详解的详细内容,更多关于Python模块化程序设计的资料请关注脚本之家其它相关文章!
推荐阅读
- 详解Python|详解Python Selenium如何获取鼠标指向的元素
- python|python常用英语词汇(持续更新)
- python|有趣好玩的python编程网站
- python|【python基础教程】面向对象初识
- python|python安装编译环境详解(Windows)
- python爬虫|【python爬虫教程】请求模块urllib的基本使用
- python|【python基础教程】python常见的运算符及用法
- python|比收费还好用的python免费学习网站(精选)
- python爬虫|爬虫基础知识(web前端,请求模块urllib,重构user_agent)
- python|26岁,转行Python,是这辈子最成功的一件事......