python - 名片管理系统

名片管理系统主要分为三个部分:
(1)新增名片
(2)显示名片
(3)查询名片

首先创建两个python文件,cards_main.py 和 cards_tools.py

cards_main.py

import cards_tools
# 无限循环,有用户主动决定什么时候退出循环
while True:
  # 显示菜单功能
  action_str = input(‘请选择希望执行的操作:’)
  print(‘您选择的操作是【%s】’% action_str)

  if action_str in [1,2,3]:
    # 新增名片
    if action_str ==1:
      cards_tools.new_card()
    if action_str ==2:
      cards_tools.show_all()
    if action_str ==3:
      cards_tools.search_card()
   elif action_str:
     print(‘欢迎再次使用【名片管理系统】‘)
     break
   else:
     print(‘您输入的不正确,请重新选择’)          

card_main.py 文件主要是列了一个名片管理系统的大框,主要用了 if 函数判断用户输入的数字决定输出的是哪个模块。
输入 1 是新增名片
输入 2 是显示名片
输入 3 是搜索名片
输入 0 是退出系统

cards_tools.py

# 记录所有的名片字典
card_list = []

def show_menu():
  print(** 50)
  print(‘欢迎使用【名片管理系统】V1.0)
  print(‘’)
  print(1.新增名片’)
  print(2.显示名片’)
  print(3.搜索名片’)
  print(‘’)
  print(0.退出系统’)
  print(** 50)

在这里插入图片描述
上述代码的运行结果如图片所示,接下来要对if函数下面的三个菜单添加功能,在输入数字1下方的定义new_card(),在输入数字2下方定义show_all(),在输入数字3下方定义search_card()。

cards_tools.py

def new_card():
  # 新增名片
  print(‘新增名片‘)
  # 提示用户输入详细信息
  name_str = input(‘请输入姓名:’)
  phone_str = input(‘请输入电话号码:’)
  qq_str = input(‘请输入QQ号码:’)
  email_str = input(‘请输入邮箱:’)
  
  # 使用用户输入的信息建立一个名片字典
  card_dict = {‘name’:name_str,
               ’phone’:phone_str,
               ’qq’:qq_str,
               ’email’:email_str}
  # 将名片字典添加到列表中
  card_list.append(card_dict)
  print(card_list)
  # 提示用户添加成功
  print(‘添加%s的名片成功’ % name_str)            
def show_all():
  # 显示所有名片
  print(-*50)
  print(‘显示所有名片’)
  if len(card_list) == 0:
    print(‘当前没有名片,请添加名片!’)
    return
  for name in [‘姓名’,’电话’,’QQ’,’邮箱’]:
    print(name,end=‘\t\t’)
  print(‘’)
  print(=*50)
  for card_dict in card_list:
    print(%s\t\t%s\t\t%s\t\t%s’ 
     %  (card_dict[‘name’],
         card_dict[‘phone’],
         card_dict[‘qq’],
         card_dict[‘email’]))    
def search_card():
  print(-*50)
  print(‘搜索名片’)
  # 提示用户要搜索的姓名
  find_name = input(‘请输入要搜索的姓名:’)
  # 遍历名片列表,搜索要搜索的姓名,如果没找到,要提示用户
  for card_dict in card_list:
    if card_dict = find_name:
      print(‘姓名\t\t电话\t\tQQ\t\t邮箱’)
      print(=*50)
      print(%s\t\t%s\t\t%s\t\t%s’ % 
            (card_dict[‘name’],
             card_dict[’phone’],
             card_dict[‘qq’],
             card_dict[‘email’]))
      # 针对找到的名片记录进行修改或删除操作
      deal_card(card_dict)
      break
  else:
    print(‘没找到%s’ % find_name)           

deal_card() 和 input_card_info()函数是对search_card()搜索名片中搜索出来的名片可以进行修改和删除,修改可以只修改其中一项,不需要修改的项不需要填写内容直接回车即可。

def deal_card(find_name):
  print(find_dict)
  action_str = input(‘请输入要执行的操作:’
              ‘[1]修改[2]删除[0]返回上一级菜单’)
  if action_str ==1:
    find_dict[‘name’] = input_card_info(find_dict[‘name’],’姓名:’)
    find_dict[‘phone’]= input_card_info(find_dict[‘phone’],’电话号码:’)
    find_dict[‘qq’]= input_card_info(find_dict[‘email’],’QQ号码:’)
    find_dict[]=
input_card_info(find_dict[‘email’],’邮箱:’)
    print(‘修改名片成功!’) 
  elif action_str ==2:
    card_list.remove(find_dict)
    print(‘删除成功!’)            
def input_card_info(dict_value,tip_message):
  # 提示用户输入信息
  return_str = input(tip_message)
  # 针对用户输入的信息进行判断,如果用户输入了内容,直接返回结果
  if len(result_str)>0:
    return result_str
  else:
    return dict_value
  # 如果用户没有输入内容,返回字典中原有的值
  
发布了5 篇原创文章 · 获赞 4 · 访问量 120

猜你喜欢

转载自blog.csdn.net/fervid_/article/details/104836397