开发者

Python学习之模块化程序设计示例详解

开发者 https://www.devze.com 2022-12-12 11:39 出处:网络 作者: 渴望力量的哈士奇
目录关于模块化程序设计水果仓库功能简介主功能实现与程序入口实现添加功能实现列出所有信息功能实现查询信息功能实现删除信息功能完整程序如下关于模块化程序设计
目录
  • 关于模块化程序设计
  • 水果仓库功能简介
    • 主功能实现与程序入口
    • 实现添加功能
    • 实现列出所有信息功能
    • 实现查询信息功能
    • 实现删除信息功能
  • 完整程序如下

    关于模块化程序设计

    什么是模块化程序设计?

    程序设计的模块化指的是在进行程序设计时,把一个大的程序功能划分为若干个小的程序模块。每一个小程序模块实现一个确定的功能,并且在这些小程序模块实现的功能之间建立必要的联系,通过各个小模块之间的互相协作完成整个大功能实现的方法。

    模块化设计程序的方法?

    • 一般在针对实现比较复杂程序的情况下,采用的是自上而编程客栈下的方法。将复杂的场景划分为几个部分,每一个部门再进行针对性的细化,直到分解为比较好的解决方案为止。
    • 采用模块化设计程序,并不是一开始就逐条的编写程序代码,而是首先用主程序、子程序等框架把软件的主要结构和流程描述出来,以功能划分的模块为单位进行程序设计。
    • 利用函数,不仅可以实现程序的模块化,使得程序设计更加简单和直观,从而提高了程序的易读性和可维护性,而且还可以把程序中经常用到的一些计算或操作编写成通用函数,以供随时调用。

    该章节模拟一个水果仓库管理程序。在前面章节中,程序的各项功能代码全部集中在一个代码段中,程序的结构不清晰。该章节使用函数来实现程序,采用模块化的程序设计方法:

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

    水果仓库功能简介

    编写程序 fruits_warehouse 模拟 水果仓库 的一个简单管理系统,水果仓库 包含若干水果,每种水果包括:名称、重量、日期 3 项内容。程序提供 4 项基本功能:

    • 添加水果: 用户输入水果的名称、重量、日期信息,将信息保存在一个列表中
    • 列出当前所有水果: 打印输出当前所有水果的信息
    • 查询水果: 用户输入水果的名称,打印输出该水果的信息
    • 删除水果: 用户输入水果的名称,删除该水果的信息

    通过命令行界面实现以上功能,程序 fruits_warehouse 运行时首先打印一个菜单,如下所示:

    1: 添加水果信息
    2: 显示所有水果
    fgSndQHK3: 查询水果信息
    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 输入要执行的操作: 
    

    Python学习之模块化程序设计示例详解

    主功能实现与程序入口

    总共有 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 = []                     # 创建一个空列表 f编程客栈ruits,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模块化程序设计的资料请关注我们其它相关文章!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号