前言:
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 哈士奇 。(我真的养了一只哈士奇)
个人主页:渴望力量的哈士奇主页
如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
如果感觉博主的文章还不错的话,还请不吝关注、点赞、收藏三连支持一下博主哦
人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。
系列专栏::
Python全栈系列 - [更新中] ➡️➡️➡️ 【 本文在该系列】
网安之路系列
网安之路踩坑篇
网安知识扫盲篇
Vulhub 漏洞复现篇
Shell脚本编程篇
Web攻防篇 ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
渗透工具使用集锦 ➡️➡️➡️ 2021年9月3日停止更新,转战先知等安全社区
⭐️ 点点点工程师系列
测试神器 - Charles 篇
测试神器 - Fiddler 篇
测试神器 - Jmeter 篇
自动化 - RobotFrameWork 系列
自动化 - 基于 JAVA 实现的WEB端UI自动化
自动化 - 基于 MonkeyRunner 实现的APP端UI自动化
2019年之前学习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()