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实现基于权重的随机数2种方法
Apr 28 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
python使用knn实现特征向量分类
Dec 26 Python
python中while和for的区别总结
Jun 28 Python
Django Celery异步任务队列的实现
Jul 24 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
python unichr函数知识点总结
Dec 16 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
基于PyTorch中view的用法说明
Mar 03 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代码
2007/03/03 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
Python 3 判断2个字典相同
2019/08/06 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
怎样创建、运行java程序
2014/08/01 面试题
拓展培训心得体会
2014/01/04 职场文书
PL350与SW11的比较
2021/04/22 无线电
Python3 类型标注支持操作
2021/06/02 Python
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
vue中 this.$set的使用详解
2021/11/17 Vue.js
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python