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入门篇之编程习惯与特点
Oct 17 Python
Python HTMLParser模块解析html获取url实例
Apr 08 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python字典快速保存于读取的方法
Mar 23 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
windows下Pycharm安装opencv的多种方法
Mar 05 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
详解Python为什么不用设计模式
Jun 24 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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多用户计数器代码
2007/03/11 PHP
提高PHP编程效率的方法
2013/11/07 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
详解vue.js数据传递以及数据分发slot
2018/01/20 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
python使用str & repr转换字符串
2016/10/13 Python
python 上下文管理器使用方法小结
2017/10/10 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
python 表格打印代码实例解析
2019/10/12 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
美国性感女装网站:bebe
2017/03/04 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
车队安全员岗位职责
2015/02/15 职场文书
汽车车尾标语大全
2015/08/11 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL