Python_应用_名片管理系统_框架搭建(未完)

 把名片管理系统启动之后, 就会看到一个欢迎界面, 再欢迎界面中, 有一个功能菜单, 用户可以通过输入数字的方式来选择对应的功能.

当用户选择新建名片的时候, 要求名片输入名片对应的姓名, 电话, QQ, 邮件.

当用户使用查询名片的时候, 查询到一个指定的名片记录之后, 就可以针对这个名片记录进行修改或者删除操作.

现在桌面上有这样一个目录

在终端中切换到该目录

 使用 ls-l 来查看这个目录中的文件情况.

回车之后可以看到在这个目录下有三个 python 文件, 同时还有一个 __pycache__ 的缓存目录.

 使用 python 3 的解释器来运行一下 cards_main.py 这个python 文件.(第一种方式, 通过python 的解释器运行python 文件.)

回车之后, 可以看到一个欢迎界面.

输入一个2, 回车之后, 提示我们功能是显示全部, 但是现在还没有任何的名片记录.

 现在通过功能1, 新建一个名片, 成功添加了张三的名片

再通过显示全部来查看一下, 选择2, 回车, 然后会提示我们功能是显示全部, 同时以列表的方式, 显示出 刚刚我们添加的 张三 这个名片信息.

同理可以添加小美的个人信息.

 想修改小美的个人信息, 可以首先通过功能3, 查询一下小美的个人信息, 回车之后, 查到了小美的名片记录, 会提示我们针对这条名片记录, 可以进行的后续操作, 

 输入1, 回车之后, 会提示我们, 请输入姓名[回车不修改], 既然不修改, 直接回车.

 现在会提示我们输入电话号码, 回车不修改, 

 把小美的电话号码从10086 改为 120, 再回车.

 QQ号码和邮箱都不修改, 直接回车, 回车后提示我们小美的名片记录修改成功.

 再通过功能2 来查看一下修改后的情况, 小美的电话已经被改成了120.

 紧接着再来查询一下张三这个个人记录, 输入3, 回车, 再输入张三这个姓名,又提示我们找到了张三这个名片记录.

 输入2, 把张三这个记录进行一个删除, 会提示我们删除成功.

然后再通过功能2, 查询一下名片记录,张三的信息已删除.

 如果名片记录全部操作完成, 就可以输入一个0 退出系统.

 退出后, 又回到了终端的提示窗口

-rwxrwxr-x 中的x 表示这个文件是可以执行的, 既然可以执行, 就可以通过文件名来直接运行这个名片管理系统, .

 直接输入文件名来运行这个文件管理系统.(直接通过python 的文件名, 而不再通过python 的解释器就可以让这个python 文件运行了)

 框架搭建

1.框架介绍及系统架构分析

所谓框架搭建, 就是先给文件管理系统搭建一个简单的架构, 这个简单的架构是一个能运行的简单程序, 不过功能还很不完善, 这个架子准备完成之后,我们就可以以这个架子为基础, 不断地进行完善和扩充, 最终实现我们的目标----名片管理系统.

当我们走向工作岗位, 可能会接手到一个有一个系统开发工作, 要开发一个系统, 通常就是要给这个系统搭建一个工作, 让这个系统能够简单的运行起来.

框架搭建通常包括两个的主要工作, 第一个工作是准备一些简单的工作, 第二个工作是编写一些简单的代码, 能够让这个程序先简单的运行起来.

先来看一下文件准备工作, 在名片管理系统中, 我们需要准被两个文件, 第一个文件叫 cards_main.py, 第二个文件叫 cards_tools.py.

提示:通常一个复杂的应用程序是由多个文件共同组成的, 在这个系统中不同的文件扮演不同的角色, 不同的文件承担不同的职责, 在文件管理系统中, 这个 main 文件和 tools 文件,  

 第一框框是主程序, 第二个框框是工具程序, 如果名片管理系统开发完成, 我们要想使用文件管理系统, 要先运行一个文件, 而一个系统中如果有多个python 文件, 我们应该运行main 程序, main 程序通常我们可以把它叫做程序的入口, 用大白话来讲, 只要运行这个pyhton 文件, 名片管理系统就可以启动了, 而其他文件都是提供辅助功能的, 这个就是main 文件的作用.

我们在main 文件中, 可以提示用户来输入一些信息, 比如输入数字来选择名片管理系统提供的功能选项, 1 是功能选项, 2 是显示所有名片, 3 是查询某一个名片信息, 数字0 是退出系统, 这个就是主程序提供的职责.

另外一个程序, tools 是工具, 我们要开发的是名片管理系统, 名片管理系统应该包含新增名片, 显示所有名片, 查询名片等等这些功能, 我们就把一个有一个功能封装在一个独立的函数中, 在主程序需要的时候, 我们就可以通过import 把工具文件以模块的方式导入到主程序中, 这样就可以在主程序中直接享受在模块中封装的这些函数功能, 这个就是名片管理系统在搭建框架是需要准备的两个文件, 一个文件作为程序的启动入口, 而另外一个文件提供针对文件的所有相关操作.

在程序中, 我们需要做的事情有让用户输入针对程序不同的操作, 然后进行一个判断, 当用户选择的某一个功能执行完毕之后, 程序并不会终止, 比如, 新建完一个名片之后, 程序又会再次显示主菜单, 让用户再次选择输入, 只有当用户选择了0, 表示要推出系统时候, 程序才会终止.

要想用户执行完一个功能之后, 程序又重新返回到主菜单, 我们可以增加一个循环, 在循环体内部, 提示用户要执行的操作, 只用当用户在循环内部输入了数字0, 表示需要主动推出循环的时候, 我们才使用break 推出循环, 这样就可以保证在主程序中每一个操作执行完毕之后, 都会再次回到主菜单这个功能选项. 

2. 新建项目准备文件

 

 在pycharm 中为名片管理系统新建一个项目, 然后在项目中, 准备两个文件, 一个是main 文件, 一个是工具文件.

首先点击创建项目

 指定一下保存项目所在的目录, 这个项目的目录就是项目的名称.

同时要确认一下python 解释器的版本.

点击 create.

 现在项目就保存在桌面目录下,/06名片管理/

 紧接着为项目新建两个文件, 右键, 选择python file

 现在两个文件创建完成

 要想以main 文件作为主入口程序, 应该右键, 选择"run", 这样当下一次执行程序的时候, 每一次都会运行 cards_main 这个程序

 

3.提示用户输入和 pass 关键字

开发一下提示用户输入对应的操作选项这个功能

当名片管理系统启动之后, 会首先显示一个欢迎界面, 再欢迎界面的下方, 有一个输入的提示, 提示用户来选择对应的操作功能, 我们的开发重点就是提示用户输入对应的操作数字, 并且根据用户的输入做个简单的判断, 而欢迎界面的显示不是我们这一小节的重点.

用户针对名片操作的输入应该是又main 程序承担的职责, 找到这个程序之后, 先写一下input 函数, 提示用户输入.

用户的输入搞定了.

 1,2,3 是针对名片的操作.

0 是退出系统.

输入其他内容是输入错误, 需要提示用户.

要判断, 可以通过if 语句来判断.

要判断一个字符串要么是1,要么是2, 要么是3, 可以使用 in 这个成员运算符, 如果用户输入的字符串是1 或者2 或者3, 只要是这个列表中的内容, 统统表示是针对名片的操作.

 如果用户输入的是 0, 表示退出系统, 我们可以写一个 elif, 判断一下action_str 如果等于0, 这个时候呢, 就表示退出系统.

 其他内容都表示输入错误, 可以使用 else 这个关键字, 然后在 else 下方使用 print 函数做一个输出, "您输入的不正确, 请重新选择"

 

第8行和第11 行的注释又错误的提示, 原因是只写了if 的条件判断, 在条件判断的下方还没有编写代码, 所以pycharm 就提示我们,这种程序的编写是不正确的.

 运行程序之后, 会告诉我们在elif  处有个缩进错误, 期望有一个代码. 如果不希望立刻编写这个代码, 就可以在分支下方写一个 pass d的关键字, pass 表示通过的意思.

 在elif 和else 下方增加一个pass, 注释就没有红色的虚线了.

这个pass 占位符能够保证代码结构的正确性.

 

 4.无限循环保证用户能够重复选择操作.

第一大块是提示用户选择针对名片的操作, 同时把用户的输入在控制台做一个输出.

第二大块是使用 if 语句判断一下用户输入的内容是否是针对名片操作, 还是用户希望退出系统, 若输入错误, 就给个友情提示, 提示用户重新输入.

以上两大块就是就是基本的代码结.

这个代码存在的问题是, python 代码是从上到下执行的, 当 if 语句执行完成之后, 整个程序就终止了, 没有机会再让用户再选择针对名片的操作.

比如, 输入9, 回车之后, 提示我们重新输入, 但是if 语句执行完成, 整个程序终止(标志: Process finished with exit code 0),程序终止, 就不能再次输入.

 为了解决上述的问题, 我们可以增加一个循环, 当用户每次针对名片的操作执行完成之后, 我们让代码重新回到第二行, 再次提示用户选择针对名片需要执行的操作, 只有当用户主动的选择了0, 再使用break 语句退出循环.

经过分析, 应该把现在完成的代码统统放在一个循环体内部, 只有当用户主动输入了0, 我们再通过break 退出这个循环.

把光标放在第二行, 我们现在学过两种循环, 其中for 循环只要是来遍历集合的, 从头到尾依次遍历集合中每个元素, 而我们现在需要做的是不停的循环, 一直到用户主动选择0, 我们再退出循环, 显然for 循环不能满足我们的需求.

可以使用while 循环, while 循环当某个条件满足时就不停的重复循环体的代码, 之前我们一直使用计数器的方式来使用while 循环, 现在把循环条件设置为 True, 这样循环体内部的代码会不停的执行.

while 时无限循环, 由用户主动决定什么时候退出循环.

把第四行代码一直到19行代码选中, 按一下Tab 键.

 

 运行一下程序, 看看增加了while 循环之后, 程序的运行效果.

输入9 后, 提示我们操作不正确, 请重新选择.

 输入1 后, 会提示我选择的操作时1, 同时,会提示我们再次选择针对名片的操作.

 当用户选择0 的时候, 代码并没有做处理, 意味着循环依然无法退出, 要退出循环, 应该把光标防在判断是否为0 这里, 按一下回车, 

 既然要退出系统, 先使用一个print 函数进行输出, 输出完成之后, 使用break 主动退出循环, 

 看到 Process finished with exit code 0, 然后整个程序就退出了.

 pass 关键字可以注释掉了.

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值