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 字典dict使用介绍
Nov 30 Python
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
Python中的元类编程入门指引
Apr 15 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python采集百度百科的方法
Jun 05 Python
Python的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
python 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
python实现自动打卡的示例代码
Oct 10 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
phpmail类发送邮件函数代码
2012/02/20 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
jQuery实现给页面换肤的方法
2015/05/30 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
Python读写unicode文件的方法
2015/07/10 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python发送邮件测试报告操作实例详解
2018/12/08 Python
Python实现八皇后问题示例代码
2018/12/09 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
keras之权重初始化方式
2020/05/21 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
求网格中的黑点分布
2013/11/06 面试题
简单英文演讲稿
2014/01/01 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
青蓝工程实施方案
2014/03/27 职场文书
关于安全的演讲稿
2014/05/09 职场文书
公共场所禁烟标语
2014/06/25 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python