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之有容乃大的list(2)
Sep 15 Python
Python基于select实现的socket服务器
Apr 13 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
使用python获取csv文本的某行或某列数据的实例
Apr 03 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
python+logging+yaml实现日志分割
Jul 22 Python
python圣诞树编写实例详解
Feb 13 Python
Python列表解析操作实例总结
Feb 26 Python
python matplotlib包图像配色方案分享
Mar 14 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
php 多个变量指向同一个引用($b = &$a)用法分析
2019/11/13 PHP
永不消失的title提示代码
2007/02/15 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
Python reduce()函数的用法小结
2017/11/15 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Django REST framework视图的用法
2019/01/16 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
兰兰过桥教学反思
2014/02/08 职场文书
环境保护建议书
2014/08/26 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL
利用Apache Common将java对象池化的问题
2022/06/16 Servers