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 20 Python
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
利用python发送和接收邮件
Sep 27 Python
Python如何快速实现分布式任务
Jul 06 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
python 绘制拟合曲线并加指定点标识的实现
Jul 10 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
python实现取余操作的简单实例
Aug 16 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数组查找函数总结
2014/11/18 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python交互式图形编程实例(一)
2017/11/17 Python
python GUI实例学习
2017/11/21 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
python如何删除文件、目录
2020/06/23 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
过滤器的用法
2013/10/08 面试题
综合测评自我鉴定
2013/10/08 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
趣味运动会策划方案
2014/06/02 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
领导干部考核评语
2015/01/04 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
5行Python代码实现一键批量扣图
2021/06/29 Python
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技