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的urllib库提交WEB表单
Feb 24 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python基于socket实现的UDP及TCP通讯功能示例
Nov 01 Python
pycharm 对代码做静态检查操作
Jun 09 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
python 实现性别识别
Nov 21 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 Python
Python re.sub 反向引用的实现
Jul 07 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 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设计模式 Composite (组合模式)
2011/06/26 PHP
浅谈php和.net的区别
2014/09/28 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
python 输出上个月的月末日期实例
2018/04/11 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python tkinter canvas使用实例
2019/11/04 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
Python实现图像的垂直投影示例
2020/01/17 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
为什么group by 和order by会使查询变慢
2014/05/16 面试题
学校联谊活动方案
2014/02/15 职场文书
班主任对学生的评语
2014/04/26 职场文书
教师求职自荐信范文
2015/03/04 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis