Python版名片管理系统

 更新时间:2018年11月30日 09:25:22   作者:Argued_D  
这篇文章主要为大家详细介绍了Python版名片管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文实例为大家分享了Python版名片管理系统的具体代码,供大家参考,具体内容如下

先建立cards_main的文件

import cards_tools
#无限循环,由用户主动决定什么时候退出
while True:
#TODO注释,用于标记需要去做的工作

  cards_tools.show_menu()

  action_str = raw_input("请选择希望执行的操作: ")
  print("你选择的操作是 %s" % action_str)
  #1,2,3针对名片的操作
  if action_str in ["1","2","3"]:
    if action_str == "1":
      cards_tools.new_card()
    elif action_str == "2":
      cards_tools.show_all()
    elif action_str == "3":
      cards_tools.search_card()

  #0退出系统
  elif action_str == "0":
    print("欢迎再次使用【名片管理系统】:")

    break
    #如果在开发程序时,不希望立刻编写分支内部的代码
    #可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确
    #运行程序时,pass关键字不会执行任何操作
  else:
    print("输入错误,请重新输入:")

再建立一个cards_tools的文件

card_list = []


def show_menu():
  """显示菜单"""
  print '*' * 50
  print '欢迎使用【名片管理系统】'
  print ''
  print '1.新增名片'
  print '2.显示全部'
  print '3.搜索名片'
  print '0.退出系统'
  print '*' * 50


def new_card():
  """新增名片"""
  print '-' * 50
  print '新增名片'
  # 1.提示用户输入名片的详细信息
  name_str = raw_input('请输入姓名:')
  phone_str = raw_input('请输入电话:')
  qq_str = raw_input('请输入QQ:')
  email_str = raw_input('请输入邮箱:')

  # 2.使用用户输入的信息建立一个名片字典
  card_dict = {'name_str': name_str,
         'phone_str': phone_str,
         'qq_str': qq_str,
         'email_str': email_str}

  # 3.将名片字典添加到列表中
  card_list.append(card_dict) # 把一个字典追加到一个列表中
  print card_list
  # 4.提示用户添加成功
  print '添加%s 的名片成功' % name_str


def show_all():
  """显示所有名片"""
  print '-' * 50
  print '显示所有名片'

  # 判断是否存在名片记录,如果没有,提示用户并且返回
  if len(card_list) == 0:
    print '当前没有任何的名片记录,请使用新增功能添加名片'
    # return 可以返回一个函数的执行结果
    # 下方的代码不会被执行
    # 如果return后面没有任何的内容,表示会返回到调用函数的位置
    # 并且不返回任何结果
    return
  # 打印表头
  for name in ["姓名", "电话", "QQ", "邮箱"]:
    print name,
  print ''
  # 打印分隔线
  print '=' * 50

  # 遍历名片列表依次输出字典信息
  for card_dict in card_list:
    # print card_dict
    print '%s\t\t%s\t\t%s\t\t%s' % (card_dict['name_str'],
                    card_dict['phone_str'],
                    card_dict['qq_str'],
                    card_dict['email_str'])


def search_card():
  """搜索名片"""
  print '-' * 50
  print '搜索名片'

  # 1.提示用户输入要搜索的姓名
  find_name = raw_input('请输入要搜索的姓名:')
  # 2.遍历名片列表,查询要搜索的姓名,如果没有找到,需要提示用户
  for card_dict in card_list:
    if card_dict['name_str'] == find_name:
      print '姓名 电话 QQ 邮箱'
      print '=' * 50
      print '%s %s %s %s' % (card_dict['name_str'],
                  card_dict['phone_str'],
                  card_dict['qq_str'],
                  card_dict['email_str'])

      # TODO 针对找到的名片记录执行修改和删除的操作
      # 在我们的日常编写程序中,如果一个函数的代码太多,阅读和编写都是一件困难的事情,而在开发中,可以针对一个具体独立的功能来封装一个函数,由这个函数来处理具体的操作,这样就能保证每个函数中的代码清晰明了,功能明确
      deal_card(card_dict)
      break

    else:
      print '抱歉,没有找到%s' % find_name


def deal_card(find_dict):
  print find_dict
  action_str = raw_input('请选择要执行的操作 '
              '[1] 修改 [2] 删除 :')
  # 替换已经存在的键值对
  if action_str == '1':
    find_dict['name_str'] = input_card_info(find_dict['name_str'], '姓名:')
    find_dict['phone_str'] = input_card_info(find_dict['phone_str'], '电话:')
    find_dict['qq_str'] = input_card_info(find_dict['qq_str'], 'QQ:')
    find_dict['email_str'] = input_card_info(find_dict['email_str'], '邮箱:')

    print '修改名片成功!!!'
  elif action_str == '2':

    card_list.remove(find_dict)

    print '删除名片成功!!!'

def input_card_info(dict_value, tip_message):


  """

  :param dict_value:字典中原有的值
  :param tip_message:输入的提示文字
  :return:如果用户输入了内容,就返回内容,负责返回字典中原有的值
  """
  # 1.提示用户输入内容

  result_str = raw_input(tip_message)
  # 2.针对用户的输入进行判断,如果用户输入了内容,直接返回结果
  if len(result_str) > 0:
    return result_str
  # 3.如果用户没有输入内容,返回‘字典中原有的值'
  else:
    return dict_value

效果图:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。

相关文章

  • Java中关于泛型接口的使用说明

    Java中关于泛型接口的使用说明

    这篇文章主要介绍了Java中关于泛型接口的使用说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python3 flask 文件占用未释放问题

    python3 flask 文件占用未释放问题

    这篇文章主要介绍了python3 flask 文件占用未释放问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Django配置文件代码说明

    Django配置文件代码说明

    在本篇文章里小编给大家整理了关于Django配置文件代码说明知识点,有需要的朋友们学习下。
    2019-12-12
  • 在Python中使用代理IP的方法详解

    在Python中使用代理IP的方法详解

    在网络爬虫开发中,使用代理IP是非常常见的技巧,Python作为一门强大的编程语言,也提供了很多方法来使用代理IP,下面,我将就如何在Python中使用代理IP进行详细的阐述,并举例说明,需要的朋友可以参考下
    2023-07-07
  • python dict.get()和dict[''key'']的区别详解

    python dict.get()和dict[''key'']的区别详解

    下面小编就为大家带来一篇python dict.get()和dict['key']的区别详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Mac系统中Anaconda环境配置Python json库的方法详解

    Mac系统中Anaconda环境配置Python json库的方法详解

    这篇文章主要为大家介绍了如何在Mac电脑的Anaconda环境中,配置Python语言中,用以编码、解码、处理JSON数据的json库,需要的小伙伴可以参考下
    2023-08-08
  • Python抓取京东图书评论数据

    Python抓取京东图书评论数据

    最近接了个项目,需要抓取京东图书的评论,把代码放出来给大家分享下,希望能有所帮助
    2014-08-08
  • python读取文件列表并排序的实现示例

    python读取文件列表并排序的实现示例

    本文主要介绍了python读取文件列表并排序的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python中的正斜杠与反斜杠实例验证

    python中的正斜杠与反斜杠实例验证

    这篇文章主要介绍了python中的正斜杠与反斜杠实例验证,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Python实现双向RNN与堆叠的双向RNN的示例代码

    Python实现双向RNN与堆叠的双向RNN的示例代码

    这篇文章主要为大家详细介绍了如何利用Python语言实现双向RNN与堆叠的双向RNN,文中详细讲解了双向RNN与堆叠的双向RNN的原理及实现,需要的可以参考一下
    2022-07-07

最新评论

?


http://www.vxiaotou.com