python3实现名片管理系统


Posted in Python onNovember 29, 2020

基于python3基础课程,编写名片管理系统训练,有利于熟悉python基础代码的使用。

cards_main.py

#! /usr/bin/python3

import cards_tools

# 无线循环,由用户决定什么时候退出系统
while True:

 # 显示功能菜单
 cards_tools.show_menu()

 action_str = input("请选择希望执行的操作:")

 print("\n\n\n\n\n您选择的操作是 【%s】 " % action_str)

 # 1,2,3 针对名片的操作
 if action_str in ["1", "2", "3"]:

 # 1. 新增名片的处理
 if action_str == "1":
  cards_tools.new_card()
 # 2. 显示所有名片
 elif action_str == "2":
  cards_tools.show_all()
 # 3. 查询名片
 elif action_str == "3":
  cards_tools.search_card()

 # 0 退出系统
 elif action_str == "0":

 print("欢迎再次使用【名片管理系统】")

 break
 # 如不希望立即编写分支的代码,用pass占位,可以保证程序代码结构的正确
 # pass
 # 其他内容输入错误,需要提示用户
 else:
 print("您输入的不正确,请重新选择")

cards_tools.py

# 记录所有的名片字典
card_list = []


def show_menu():

 """显示菜单"""
 print("*" * 50)
 print("欢迎使用 【名片管理系统】 V 1.0")
 print("")
 print("1. 新增名片")
 print("2. 显示所有名片")
 print("3. 查询/修改/删除 名片")
 print("")
 print("0. 退出系统")
 print("*" * 50)


def new_card():

 """新增名片"""
 print("-" * 50)
 print("新增名片")

 # 1. 提示用户输入名片的详细信息
 name_str = input("请输入姓名:")
 phone_str = input("请输入电话:")
 qq_str = input("请输入QQ:")
 email_str = input("请输入邮箱:")

 # 2. 使用用户输入的信息建立名片字典
 card_dict = {"name" : name_str,
   "phone" : phone_str,
   "qq" : qq_str,
   "email" : email_str}

 # 3. 将名片字典添加到列表中
 card_list.append(card_dict)

 print(card_dict)

 # 4. 提示用户添加成功
 print("\n\n\n\n\n添加 %s 的名片成功" % name_str)


def show_all():

 """显示所有名片"""
 print("-" * 50)
 print("显示所有名片")

 # 判断是否存在名片记录,如果没有,提示用户并且返回
 if len(card_list) == 0:

 print("当前没有任何名片记录,请增加名片")

 # return 可以返回一个函数的执行结果
 # 下方的代码不会执行
 # 如果 return 后面没有任何内容,表示会返回到调用函数的位置
 # 并且不返回任何结果
 return

 # 打印表头
 for name in ["姓名", "电话", "QQ", "邮箱"]:
 print(name, end="\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["email"]))


def search_card():

 """搜索名片"""
 print("-" * 50)
 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("=" * 50)
  print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
      card_dict["phone"],
      card_dict["qq"],
      card_dict["email"]))

  # 针对找到的名片进行修改或删除操作

  deel_card(card_dict)

  break

 else:

 print("抱歉,没有找到 %s" % find_name)


def deel_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["email"] = input_card_info(find_dict["email"], "邮件(回车不修改):")

 print("修改名片成功!")

 elif action_str == "2":

 card_list.remove(find_dict)

 print("删除名片成功!")

 elif action_str == "0":
 show_menu()


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 dict_value

源码下载:python3实现名片管理系统

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
go语言计算两个时间的时间差方法
Mar 13 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
python 日期操作类代码
May 05 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
pycharm安装和首次使用教程
Aug 27 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
Python使用进程Process模块管理资源
Mar 05 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
Python如何实现远程方法调用
Aug 07 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 Python
Python中fnmatch模块的使用详情
Nov 30 #Python
pycharm 解除默认unittest模式的方法
Nov 30 #Python
配置 Pycharm 默认 Test runner 的图文教程
Nov 30 #Python
基于python实现名片管理系统
Nov 30 #Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 #Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 #Python
python实现简单名片管理系统
Nov 30 #Python
You might like
PHP4(windows版本)中的COM函数
2006/10/09 PHP
php删除数组元素示例分享
2014/02/17 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
JS 实现图片直接下载示例代码
2013/07/22 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
Pycharm修改python路径过程图解
2020/05/22 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
比利时买床:Beter Bed
2017/12/06 全球购物
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
公司自我介绍演讲稿
2014/08/21 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
家长高考寄语
2015/02/27 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android
python和anaconda的区别
2022/05/06 Python