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中DJANGO简单测试实例
May 11 Python
Python递归遍历列表及输出的实现方法
May 19 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
python爬虫实现中英翻译词典
Jun 25 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
Python基于httpx模块实现发送请求
Jul 07 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/04/08 PHP
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
PHP session会话的安全性分析
2011/09/08 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
Js动态创建div
2008/09/25 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
JS回调函数深入理解
2019/10/16 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
python集合用法实例分析
2015/05/30 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
python连接数据库的方法
2017/10/19 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
导师就业推荐信范文
2014/05/22 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python