irpas技术客

〖Python零基础入门篇?〗- 面向对象编程 - 模块化程序设计之函数的小实战_全栈哈士奇

irpas 3563

万叶集🎉 隐约雷鸣,阴霾天空。 🎉🎉 但盼风雨来,能留你在此。 🎉

前言: ? 作者简介:渴望力量的哈士奇 ?,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ? 🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线指引知识定位 🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。 语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。 自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。 自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。 数据库开发实战篇 更新中 爬虫入门与实战 更新中 数据分析篇 更新中 前端入门+flask 全栈篇 更新中 django+vue全栈篇 更新中 拓展-人工智能入门 更新中 网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者 网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。 vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。 shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结] WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈 点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器 测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得! 测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。 RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。 Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。 MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


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

关于模块化程序设计

什么是模块化程序设计?

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

模块化设计程序的方法?

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

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

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

编写程序 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()


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Python零基础入门篇 #面向对象编程 #模块化程序设计之函数的小实战