> 文档中心 > Python零基础入门篇 - 32 - 模块化程序设计之函数的小实战

Python零基础入门篇 - 32 - 模块化程序设计之函数的小实战


前言
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 🐶哈士奇🐶 。(我真的养了一只哈士奇)
📑 个人主页:渴望力量的哈士奇主页
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥 如果感觉博主的文章还不错的话,还请不吝👍关注、点赞、收藏三连支持👍一下博主哦
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬

📕系列专栏::
               👍 Python全栈系列 - [更新中]    ➡️➡️➡️ 【 本文在该系列】
               👋 网安之路系列
​                       🍋 网安之路踩坑篇
​                       🍋 网安知识扫盲篇
​                       🍋 Vulhub 漏洞复现篇
​                       🍋 Shell脚本编程篇
​                       🍋 Web攻防篇  ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
​                       🍋 渗透工具使用集锦  ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
​                ⭐️ 点点点工程师系列
​                       🍹 测试神器 - Charles 篇
​                       🍹 测试神器 - Fiddler 篇
​                       🍹 测试神器 - Jmeter 篇
​                       🍹 自动化 - RobotFrameWork 系列
​                       🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
                       🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化
​                🤗 2019年之前学习Python留下的乱七八糟系列

🎉🎉欢迎持续关注🎉🎉

Python零基础入门篇 - 32 - 模块化程序设计之函数的小实战

文章目录

    • 关于模块化程序设计
    • 水果仓库功能简介
      • 主功能实现与程序入口
      • 实现添加功能
      • 实现列出所有信息功能
      • 实现查询信息功能
      • 实现删除信息功能
    • 完整程序如下

关于模块化程序设计

什么是模块化程序设计?

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

模块化设计程序的方法?

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

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

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

水果仓库功能简介

编写程序 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 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 退出

编写对应的函数,这里我们先写出函数的定义,暂时使用 pass 占位,代码如下

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':     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 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':     break else:     print('输入错误!请重新输入!')main()