python实现一个函数版的名片管理系统过程解析


Posted in Python onAugust 27, 2019

本案例使用了自定义函数以及对字符串的常见操作、判断语句和循环语句等知识。

要求

必须使用自定义函数,完成对程序的模块化。

名片信息至少包括:姓名、电话、住址。

必须完成的功能:增、删、改、查、退出。

分析

首先呢,我们应该先定义一个全局变量,用于存储所有的名片信息。

cards = [{
  "name": "张三",
  "phone": "10086",
  "address": "山西省",
}, {
  "name": "李四",
  "phone": "10010",
  "address": "北京市",
}] # 定义一个的列表用于存放名片信息,默认里面有张三和李四的信息,方便以后调试用。

完成增加,删除,修改,查找等相关操作的函数(cards是可变类型的全局变量,故在函数中不用加global也可调用),注意:如定义变量 a: int = 0, int只是单纯的提示开发人员它的类型是int,方便调试。

def print_menu():
  """"完成打印功能菜单"""
  print("=" * 20)
  print("  名片管理系统")
  print(" 1:添加一个名片")
  print(" 2:删除一个名片")
  print(" 3:修改一个名片")
  print(" 4:查询一个名片")
  print(" 5:显示所有的名片")
  print(" 6:退出")
  print("=" * 20)


def add_card():
  """完成添加一个名片的功能"""
  new_infor: dict = {
    "name": input("请输入一个名字:"), 
    "phone": input("请输入一个电话:"), 
    "address": input("请输入一个地址:")
  }
  cards.append(new_infor)
  print("添加成功!")


def delete_card():
  del_name = input("请输入要删除的名字:")
  for person in cards:
    if del_name == person["name"]:
      cards.remove(person)
      print("删除成功!")
      break
  else:
    print("找不到要删除的人!")


def update_card():
  name: str = input("请输入要修改的名字(只能通过名字来修改电话和住址):")
  for person in cards:
    if name == person["name"]:
      phone = input("请输入新的的电话(直接回车则不修改):")
      address = input("请输入新的的地址(直接回车则不修改):")
      if phone:
        person["phone"] = phone
      if address:
        person["address"] = address
      print("修改成功")
      break
  else:
    print("找不到要修改的人!")


def find_card():
  """用来查询一个名片"""

  find_name: str = input("请输入要查询的名字(支持模糊查询):")
  flag: int = 1
  for temp in cards:
    # 遍历名片中的所有名字,判断要查找的名字是否存在,不存在则打印查无此人
    if temp["name"].find(find_name) != -1:
      print("%s\t%s\t%s" % (temp["name"], temp["phone"], temp["address"]))
      flag = 0
  if flag:
    print("查无此人")


def show_all():
  print("姓名\t电话\t住址")
  for temp in cards:
    print("%s\t%s\t%s" % (temp["name"], temp["phone"], temp["address"]))

最后完成主函数的功能,并调用主函数

def main():
  """"完成对整个程序的控制"""
  # 打印功能提示
  print_menu()
  while True:
    # 获取用户的选择
    num: str = input("请输入功能序号:")
    # 判断输入的是否为数字
    if not num.isdigit():
      print("请输入数字!")
      continue
    # 转换成数字类型
    num: int = int(num)
    # 增
    if num == 1:
      add_card()
    # 删
    elif num == 2:
      delete_card()
    # 改
    elif num == 3:
      update_card()
    # 查
    elif num == 4:
      find_card()
    elif num == 5:
      show_all()
    elif num == 6:
      break
    else:
      print("请按号输入!")
    print()

# 调用主函数
if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
Python实现约瑟夫环问题的方法
May 03 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
Python检测网络延迟的代码
May 15 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
Python中base64与xml取值结合问题
Dec 22 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
用python发送微信消息
Dec 21 Python
python opencv通过按键采集图片源码
May 20 Python
python中下标和切片的使用方法解析
Aug 27 #Python
python使用if语句实现一个猜拳游戏详解
Aug 27 #Python
Python socket 套接字实现通信详解
Aug 27 #Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 #Python
手写一个python迭代器过程详解
Aug 27 #Python
浅析Python语言自带的数据结构有哪些
Aug 27 #Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 #Python
You might like
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
javascript 写类方式之三
2009/07/05 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
浅谈Python爬虫基本套路
2019/03/25 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
C语言基础笔试题
2013/04/27 面试题
南京某软件公司的.net面试题
2015/11/30 面试题
音乐系毕业生自荐信
2013/10/27 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
乳制品整治工作方案
2014/05/29 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
时尚女魔头观后感
2015/06/04 职场文书