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实现的石头剪子布代码分享
Aug 22 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
pyqt5实现登录界面的模板
May 30 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
scrapy-splash简单使用详解
Feb 21 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/18 PHP
php 前一天或后一天的日期
2008/06/28 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
小程序自定义日历效果
2018/12/29 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
jquery插件开发模式实例详解
2019/07/20 jQuery
javascript网页随机点名实现过程解析
2019/10/15 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
基于python实现名片管理系统
2018/11/30 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
美国健康和保健平台:healtop
2020/07/02 全球购物
中科前程Java笔试题
2016/11/20 面试题
在职研究生自我鉴定
2013/10/16 职场文书
应届生自我鉴定
2013/12/11 职场文书
广告创意求职信
2014/03/17 职场文书
社区健康教育实施方案
2014/03/18 职场文书
总经理任命书
2014/03/29 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle