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开发windows GUI程序入门实例
Oct 23 Python
用Python遍历C盘dll文件的方法
May 06 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
Python实现进程同步和通信的方法
Jan 02 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
python同时替换多个字符串方法示例
Sep 17 Python
python绘制BA无标度网络示例代码
Nov 21 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
Python图像识别+KNN求解数独的实现
Nov 13 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
Terran热键控制
2020/03/14 星际争霸
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
PHP 读取和修改大文件的某行内容的代码
2009/10/30 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHPMailer发送邮件
2016/12/28 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python入门学习指南分享
2018/04/11 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
大学毕业生通用求职信
2013/09/28 职场文书
证婚人搞笑证婚词
2014/01/10 职场文书
运动会致辞稿50字
2014/02/04 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
干部年终考核评语
2015/01/04 职场文书
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python