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 Property属性的2种用法
Jun 21 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
Python快速查找list中相同部分的方法
Jun 27 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 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
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP编程函数安全篇
2013/01/08 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
php中的strpos使用示例
2014/02/27 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
Vue指令指令大全
2019/02/09 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
一个Python最简单的接口自动化框架
2018/01/02 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
Python3 log10()函数简单用法
2019/02/19 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
校长岗位职责
2013/11/26 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
淘宝好评语句大全
2014/12/31 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python