首先来两张图~尝试效果!

首先要对这个小项目,进行一个思路整理。以及是如何实现的。

首先准备两个Python文件,一个用于搭建框架,一个用于封装函数,进行调用。

因为Python是门解释性编程语言,所以咱们的代码顺序也是从上往下进行讲解。第一个的py文件是框架。第二个是函数。

首先从第一行开始。首先定义一个大的循环,一般循环的话,需要设置值什么的。但是在这里的话。就不用设置值了,直接加个True就已经开始了无线循环了。只要你不在后面加上break。

下面的话就是开始调用代码了,也就是开局的欢迎词。

然后这个就用到了第二个py文件,然后定义了个“show_menu”的函数进行print输出这些欢迎词。然后这样简单的开始就做好了。

然后就可以尝试实现这三个功能了。之后在后面定义了个“action_str”,来记录用户输入的值,当用户输入的值为时,进行新建,输入的0的时候,退出系统。

之后在后面定义个if语句,然后当“show_menu" = 1的时候,调用函数。进行名片新建来输入内容。

ef new_card():# 切记要新建一个空列表print("-" * 10)print("新增名片")# 1.提示用户输入名片的详细信息name_str = input("请输入你的姓名:")phone_str = input("请输入电话号码:")qq_str = input("请输入你的QQ账号:")emali_str = input("请输入你的邮箱:")# 2.根据用户输入的信息建立一个名片字典card_dict = {"name": name_str,"phone": phone_str,"qq": qq_str,"emali": emali_str}# 3.将名片字典添加到列表中card_list.append(card_dict)

首先我在那个函数的py文件,顶部建立了个空列表。然后用这个"new_card",来提示用户输入内容,首先用print弹出一行分割线。然后再弹出一个“新建名片”,之后定义几个字符串类型来记录用户输入的input函数,然后把这几个字符串封装成一个字典。然后用顶部定义的那个列表来添加这个字典。append就是列表新建内容的意思。

下面就接着完成第二个,查看全部的效果。

首先依旧是定义一个函数“show_all”,然后进行弹出记录的全部名片进行输出。

def show_all():"""显示所有名片"""print("-" * 10)print("显示所有名片")# 判断是否存在名片记录,如果没有,提示用户返回if len(card_list) == 0:print("当前没有任何名片记录,请使用新增功能添加名片!")# 可以返回一个函数的执行结果# 下方的代码不会被执行# 如果resutn 后面没有任何内容的话 表示会返回到调用函数的位置# 并且不返回任何结果return# 打印表头for name in ["姓名","电话","QQ","邮箱"]:print(name,end="\t\t\t")print("")# 打印分割线print("="*50)# 遍历名片列表依次输出字典信息for card_dict in card_list:print("%s\t\t%s\t\t%s\t\t%s"%(card_dict["name"],card_dict["phone"],card_dict["qq"],card_dict["emali"]))

首先在顶部进行一个函数注释,这样使用的时候,可以直接按gtrl+q就可以看到这个函数是干什么用的了。

然后同样打印输出一个片头,以及作用。继续呢。就可以开始打印表头了。也就是如下图所示。

用for定义一个name,然后在后面定义个列表,下面再输出这个name的值,并且在后面输入一个end"\t\t",这个\t的作用是换行。不懂的朋友可以去我的上一篇博客进行查看。制表符-字符串。

然后再新建一个print的函数,内容为空即可了。之后打印分割线。在用for循环,遍历名片列表以此输出字典信息。

然后当没有这个名片的时候,就可以定义个if语句来判断字典里面的值,当值=0的时候 用return进行返回上一级。然后提升用户新建名片。

下面就是开始进行搜索界面的操作了。

def search_card():"""搜索名片"""print("-" * 10)print("搜索名片")# 1. 提示用户输入需要搜索的名字find_name = input("请输入你要查询的名字:")# 2. 遍历名片列表,查询搜索的姓名for card_dict in card_list:if card_dict["name"] == find_name:print("姓名\t\t电话\t\tQQ\t\t邮箱")print("="*30)  #打印分割线print("找到辽!")print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],card_dict["phone"],card_dict["qq"],card_dict["emali"]))# 针对找到的名片进行删除和修改的操作deal_card(card_dict)breakelse:print("没有找到%s的名片,可以选择'1'进行新建名片!"%find_name)

首先同上一样,打印片头。然后定义个find_name然后记录这个input的值。然后遍历名片列表看看能不能找到。如果找到话,就同上弹出输出,如果没找到的话,就提示用户没找到。

def deal_card(find_dict):"""处理查找到的名片:param find_dict: 查找到的名片"""print(find_dict)action_str = input("请选择要执行的操作""[1].修改 [2].删除 [0].返回上级菜单")if action_str == '1':find_dict["name"] = input_card_info(find_dict["name"],"姓名")find_dict["phone"] = input_card_info(find_dict["phone"],"手机")find_dict["qq"] = input_card_info(find_dict["qq"],"QQ")find_dict["emali"] = input_card_info(find_dict["emali"],"邮箱")print("修改名片成功了!")elif action_str == '2':card_list.remove(find_dict)print("删除名片成功!")def input_card_info(dict_value,tip_message):"""输入名片信息:param dict_value: 字典内容原有的值:param tip_message: 提示输入的值:return: 如果用户输入了内容,即返回内容,没输入即返回字典原有的值"""# 1.提示用户输入内容result_str = input(tip_message)# 2.针对用户输入的进行判断,如果用户输入内容,直接返回结果。if len(result_str)>0:return result_str# 3.如果用户没有输入内容,直接返回字典原有的值else:return

处理用户输入的值,然后进行判断。删除还是修改。首先定义个函数名来来记录,首先可以先来玩删除。删除的话直接判断输入的值,是否等于2,如果等于2的话,直接用remove进行删除那个名片字典。然后在下面封装一个"input_card_info的函数,用来处理修改名片的操作。这个名片里面,我定义了两个值,一个是dict_value,一个是tip_message。首先第一个值是字典原有的值,第二个的话就是用户修改的值。然后新定义个函数,用来记录用户输入修改的内容,用if进行判断这个函数的长度,若输入的内容长度>0的时候,就return返回用户输入的值,如果小于0也就是else的话,即返回字典原有的值。

然后顶部也是都把分开的函数,进行放在那里面。

# 框架import cards_tools
# 这种循环是无限循环,由用户来决定什么时候循环结束
while True:cards_tools.show_menu()# 显示功能菜单action_str = input("请选择希望执行的操作:")print("您选择的操作是%s"%action_str)# 1 2 3是针对名片的操作if action_str in ["1","2","3"]:# 新增名片if action_str == "1":cards_tools.new_card()# 查看全部elif action_str == "2":cards_tools.show_all()# 查询名片elif action_str == "3":cards_tools.search_card()# 0是退出系统# """如果在开发时,不希望立刻编写分支内部的代码,可以使用pass关键字  表示一个占位符 能够保证程序代码的正确# pass命令不会执行任何的操作"""elif action_str == "0":print("欢迎再次使用名片管理系统!")break# pass# 其他内容输入错误 提示用户else:print("您输入的不正确,请重新输入!")
# 函数# 记录所有名片的字典card_list = []def show_menu():"""显示菜单内容"""print("~" * 10)print("欢迎使用名片管理系统 v1.0")print("")print("1.新增名片")print("2.查看全部")print("3.查询名片")print("")print("0.退出系统")print("~" * 10)def new_card():# 切记要新建一个空列表print("-" * 10)print("新增名片")# 1.提示用户输入名片的详细信息name_str = input("请输入你的姓名:")phone_str = input("请输入电话号码:")qq_str = input("请输入你的QQ账号:")emali_str = input("请输入你的邮箱:")# 2.根据用户输入的信息建立一个名片字典card_dict = {"name": name_str,"phone": phone_str,"qq": qq_str,"emali": emali_str}# 3.将名片字典添加到列表中card_list.append(card_dict)print(card_list)# 4.提示用户添加成功print("添加%s的名片成功!!!"%name_str)def show_all():"""显示所有名片"""print("-" * 10)print("显示所有名片")# 判断是否存在名片记录,如果没有,提示用户返回if len(card_list) == 0:print("当前没有任何名片记录,请使用新增功能添加名片!")# 可以返回一个函数的执行结果# 下方的代码不会被执行# 如果resutn 后面没有任何内容的话 表示会返回到调用函数的位置# 并且不返回任何结果return# 打印表头for name in ["姓名","电话","QQ","邮箱"]:print(name,end="\t\t\t")print("")# 打印分割线print("="*50)# 遍历名片列表依次输出字典信息for card_dict in card_list:print("%s\t\t%s\t\t%s\t\t%s"%(card_dict["name"],card_dict["phone"],card_dict["qq"],card_dict["emali"]))def search_card():"""搜索名片"""print("-" * 10)print("搜索名片")# 1. 提示用户输入需要搜索的名字find_name = input("请输入你要查询的名字:")# 2. 遍历名片列表,查询搜索的姓名for card_dict in card_list:if card_dict["name"] == find_name:print("姓名\t\t电话\t\tQQ\t\t邮箱")print("="*30)  #打印分割线print("找到辽!")print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],card_dict["phone"],card_dict["qq"],card_dict["emali"]))# 针对找到的名片进行删除和修改的操作deal_card(card_dict)breakelse:print("没有找到%s的名片,可以选择'1'进行新建名片!"%find_name)def deal_card(find_dict):"""处理查找到的名片:param find_dict: 查找到的名片"""print(find_dict)action_str = input("请选择要执行的操作""[1].修改 [2].删除 [0].返回上级菜单")if action_str == '1':find_dict["name"] = input_card_info(find_dict["name"],"姓名")find_dict["phone"] = input_card_info(find_dict["phone"],"手机")find_dict["qq"] = input_card_info(find_dict["qq"],"QQ")find_dict["emali"] = input_card_info(find_dict["emali"],"邮箱")print("修改名片成功了!")elif action_str == '2':card_list.remove(find_dict)print("删除名片成功!")def input_card_info(dict_value,tip_message):"""输入名片信息:param dict_value: 字典内容原有的值:param tip_message: 提示输入的值:return: 如果用户输入了内容,即返回内容,没输入即返回字典原有的值"""# 1.提示用户输入内容result_str = input(tip_message)# 2.针对用户输入的进行判断,如果用户输入内容,直接返回结果。if len(result_str)>0:return result_str# 3.如果用户没有输入内容,直接返回字典原有的值else:return

人生苦短,建议你好好学Python Python福利 提取码:lsee 100天速成python GitHub

Python入门-编写简单名片管理系统相关推荐

  1. python使用spark_如何在Python中编写简单代码,并且速度超越Spark?

    全文共3482字,预计学习时长7分钟 如今,大家都在Python工具(pandas和Scikit-learn)的简洁性.Spark和Hadoop的可扩展性以及Kubernetes的操作就绪之间做选择. ...

  2. python 字节流分段_如何在Python中编写简单代码,并且速度超越Spark?

    全文共 3482字,预计学习时长 7分钟 如今,大家都在Python工具(pandas和Scikit-learn)的简洁性.Spark和Hadoop的可扩展性以及Kubernetes的操作就绪之间做选 ...

  3. Linux环境下安装python并编写简单程序

    本项目以python 3.9.12为例(最新版本可能会有些兼容性问题,所以我们不选择最新版本) 在Linux(ubuntu)环境下进行安装python并编写简单的程序,输出自己的名字 1.在官网进行下 ...

  4. 使用 Python 3 编写简单爬虫

    使用 Python 3 编写简单爬虫 本文主要是学习Python3一个小阶段的记录,边看视频边做的一个爬虫--抓取主播名字和人气然后进行降序排序,当作复习. 学习视频:https://coding.i ...

  5. 乘法口诀表python_学习python之编写简单乘法口诀表实现代码

    学习python之编写简单乘法口诀表实现代码 更新时间:2016年02月27日 22:23:30 投稿:mdxy-dxy 这篇文章主要介绍了学习python之编写简单乘法口诀表实现代码,需要的朋友可以 ...

  6. 用python编写名片_python实现简单名片管理系统

    前言 之前看过一遍的python教程,真的是自己看过一遍,python的程序能看懂,但是很难去实现.比较困难的自己实现一些代码,找工作原因,自己又认认真真的看书,敲代码,后来看到了这个题目,想把之前学 ...

  7. Python结合MySQL数据库编写简单信息管理系统

    1,项目整体逻辑及使用工具 1.1 项目整体逻辑 本项目主要是使用Python进行编写,利用Python中的pymysql库进行连接数据库,将信息存入MySQL数据库中,然后实现对信息进行增删改查等一 ...

  8. 基于python编写一个名片管理系统

    我们小做一个名片管理系统,首先要确定系统的框架,要实现增删改查的功能,可以定义 1:增加 2:查看 3:查询(并修改)4:退出系统,我们确定了这几项功能,然后我们就可以编写主程序了. 功能列表 1 新 ...

  9. python怎么打印自己名片_python实现简单名片管理系统

    前言 之前看过一遍的python教程,真的是自己看过一遍,python的程序能看懂,但是很难去实现.比较困难的自己实现一些代码,找工作原因,自己又认认真真的看书,敲代码,后来看到了这个题目,想把之前学 ...

  10. Python综合应用(1)--名片管理系统开发

    第一个综合应用-名片管理系统 1框架搭建 2完善功能 综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程: 框 ...

最新文章

  1. R语言ggplot2可视化使用ggplot2包patchwork包在可视化结果(右上角)中插入logo图片
  2. IOS开发基础知识--碎片32
  3. Java 位图法排序
  4. CI框架中pdo的使用方法
  5. 出现could not find developer disk image解决办法和不受信任的开发者
  6. VIM-配置-.vimrc
  7. [C++STL]C++实现queue容器适配器
  8. OneNand、Nand和Nor三种Flash的区别
  9. laravel5.4根据数据表生成迁移文件
  10. java等边三角形代码_Java实现等边三角形--小程序,大思想
  11. 【转】关于python中re模块split方法的使用
  12. matlab热应力计算,Matlab在齿轮应力计算中的应用
  13. 2019最受欢迎语言_2019年100最受欢迎的免费在线课程
  14. VSCode远程控制服务器
  15. BI报表工具FineReport的使用2【帆软聚合报表设计,最常用功能】
  16. 关于 mysql数据库“ERROR 1118 (42000): Row size too large.“ 的解决方法
  17. java 413错误,413错误——线上bug历险记
  18. VS 2013使用ReportViewer 提示An error occurred during local report processing异常处理
  19. 1Tb 硬盘重做系统无法启动修复
  20. Day794.如何用协程来优化多线程业务 -Java 性能调优实战

热门文章

  1. idea中html导入背景图片,IDEA设置导入主题样式皮肤,加入背景图片
  2. excel 如何批量删除必表中的空白行
  3. mysql后台_使用MySQL在后台运行SQL查询
  4. 网络安全之木马的工作原理及其攻击步骤
  5. IOS越狱插件安装后设置里边未显示
  6. 图灵大会 | 新观点:AI盛世,其实我们离得还很远
  7. 图灵大会圆满落幕,码隆科技与全球最强大脑同台
  8. Docsify 侧边栏 : 自动生成sidebar与子目录sidebar
  9. python制作电子签名
  10. JS 数据容量转换/换算