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使用marshal模块序列化实例
Sep 25 Python
python批量提交沙箱问题实例
Oct 08 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python读取xlsx文件的实现方法
Jul 04 Python
节日快乐! Python画一棵圣诞树送给你
Dec 24 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
python怎么自定义捕获错误
Jun 29 Python
详解Django中异步任务之django-celery
Nov 05 Python
Python学习之os包使用教程详解
Mar 21 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与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
python中管道用法入门实例
2015/06/04 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
使用Python封装excel操作指南
2021/01/29 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
美国滑板店:Tactics
2020/11/08 全球购物
经典促销广告词大全
2014/03/19 职场文书
法律进社区实施方案
2014/03/21 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
有关环保的标语
2014/06/13 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
Python 中面向接口编程
2022/05/20 Python