14.综合应用 - 名片管理系统
1)框架搭建
搭建名片管理系统框架结构
准备文件,确定文件名,保证能够在需要的位置编写代码
编写主运行循环,实现基本的用户输入和判断
(1)文件准备
①新建cards_main.py,保存主程序功能代码
程序的入口
每一次启动名片管理系统都通过 main 这个文件启动
②新建cards_tools.py,保存所有名片功能函数
将对名片的 新增、查询、修改、删除 等功能封装在不同的函数中

(2)编写主运行循环

在cards_main中添加一个无限循环

学生名片管理系统python步骤 python名片管理系统难点总结_无限循环

①字符串判断
python if action in ["1", "2", "3"]:
python if action == "1" or action == "2" or action == "3":
a)使用 in 针对 列表 判断,避免使用 or 拼接复杂的逻辑条件
b)没有使用 int 转换用户输入,可以避免 一旦用户输入的不是数字,导致程序运行出错

②pass
pass 就是一个空语句,不做任何事情,一般用做占位语句,是为了保持程序结构的完整性

③无限循环
在开发软件时,如果不希望程序执行后立即退出,可以在程序中增加一个无限循环,由用户来决定退出程序的时机

④TODO 注释
在#后跟上TODO,用于标记需要去做的工作
格式:

TODO(作者/邮件) 显示系统菜单

学生名片管理系统python步骤 python名片管理系统难点总结_python_02

(3)在cards_tools中增加四个新函数

学生名片管理系统python步骤 python名片管理系统难点总结_python_03

(4)导入模块

在 cards_main.py 中使用 import 导入 cards_tools 模块

修改 while 循环的代码如下:

学生名片管理系统python步骤 python名片管理系统难点总结_无限循环_04


至此:cards_main 中的所有代码全部开发完毕!(5)完成 show_menu 函数

学生名片管理系统python步骤 python名片管理系统难点总结_无限循环_05

2)保存名片数据的结构

程序就是用来处理数据的,而变量就是用来存储数据的

使用字典记录每一张名片的详细信息

使用列表统一记录所有的名片字典

学生名片管理系统python步骤 python名片管理系统难点总结_数据_06


定义名片列表变量

在cards_tools文件的顶部增加一个列表变量

学生名片管理系统python步骤 python名片管理系统难点总结_python_07


注意:所有名片相关操作,都需要使用这个列表,所以应该定义在程序的顶部

程序刚运行时,没有数据,所以是空列表

3)新增名片
(1)功能分析
①提示用户依次输入名片信息
②将名片信息保存到一个字典
③将字典添加到名片列表
④提示名片添加完成

(2)实现 new_card 方法

学生名片管理系统python步骤 python名片管理系统难点总结_学生名片管理系统python步骤_08


技巧:在PyCharm中,可以使用SHIFT + F6统一修改变量名

4)显示所有名片
(1)功能分析
迭代遍历名片列表,顺序显示每一个字典的信息

(2)代码实现

学生名片管理系统python步骤 python名片管理系统难点总结_python_09

(3)增加标题和使用“\t”显示

学生名片管理系统python步骤 python名片管理系统难点总结_无限循环_10

(4)增加没有名片记录判断

插入红框内的判断语句即可。此处也可以用if else,但用return修改量最小,语句也更精简

学生名片管理系统python步骤 python名片管理系统难点总结_python_11


注意:

①在函数中使用“return”表示返回

②如果在“return”后没有跟任何内容,只是表示该函数执行到此就不再执行后续的代码

5)查询名片
(1)功能分析
①提示用户要搜索的姓名
②根据用户输入的姓名遍历列表
③搜索到指定的名片后,再执行后续的操作

(2)代码实现

①查询功能实现

学生名片管理系统python步骤 python名片管理系统难点总结_无限循环_12

②增加名片操作函数:修改/删除/返回主菜单

学生名片管理系统python步骤 python名片管理系统难点总结_数据_13

6)修改和删除
(1)查询成功后删除名片
由于找到的字典记录已经在列表中保存
要删除名片记录,只需要把列表中对应的字典删除即可

(2)修改名片

由于找到的字典记录已经在列表中保存

要修改名片记录,只需要把列表中对应的字典中每一个键值对的数据修改即可

学生名片管理系统python步骤 python名片管理系统难点总结_数据_14

(3)修改名片细化

如果用户在使用时,某些名片内容并不想修改,应该如何做呢?

系统提供的input函数不能满足需求,那么就新定义一个函数input_card_info对系统的input函数进行扩展

学生名片管理系统python步骤 python名片管理系统难点总结_数据_15


自定义的输入方法:

学生名片管理系统python步骤 python名片管理系统难点总结_python_16

(4)添加函数的注释

学生名片管理系统python步骤 python名片管理系统难点总结_数据_17

7)Linux上的Shebang符号(# !)

(1)shebang的概念

“# !”这个符号叫做Shebang或者Sha-bang,Shebang通常在Unix系统脚本的中第一行开头使用,指明执行这个脚本文件的解释程序

(2)使用 Shebang 的步骤

①使用which查询python3解释器所在路径

学生名片管理系统python步骤 python名片管理系统难点总结_python_18


②修改要运行的主python文件,在第一行增加以下内容

学生名片管理系统python步骤 python名片管理系统难点总结_python_19


③修改主 python文件的文件权限,增加执行权限

学生名片管理系统python步骤 python名片管理系统难点总结_无限循环_20


④在需要时执行程序即可

学生名片管理系统python步骤 python名片管理系统难点总结_学生名片管理系统python步骤_21


注意:在windows下编辑的文件,在linux中运行时会报错。