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 with的用法
Aug 22 Python
浅析Python中的多条件排序实现
Jun 07 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
使用python实现ANN
Dec 20 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
Jun 28 Python
Django框架模板介绍
Jan 15 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
Python爬取酷狗MP3音频的步骤
Feb 26 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 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
德生PL550的电路分析
2021/03/02 无线电
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
浅析php原型模式
2014/11/25 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
js自定义回调函数
2015/12/13 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
基于JS实现checkbox全选功能实例代码
2016/10/31 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
Element Input组件分析小结
2018/10/11 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
在Python中使用判断语句和循环的教程
2015/04/25 Python
Python解析nginx日志文件
2015/05/11 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
Python实现Dijkstra算法
2018/10/17 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
自荐信的五个重要部分
2013/10/29 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书