(Python)名片管理系统 实现增删改查

末蓝、 2021-12-24 07:05 458阅读 0赞

注:cards_main.py为主函数
cards_tools.py为功能函数

cards_main.py主函数

  1. import cards_tools
  2. # 无限循环,由用户主动决定什么时候退出循环
  3. while True:
  4. # 显示功能菜单
  5. cards_tools.show_menu()
  6. action_str=input("请选择希望执行的操作:")
  7. print("您选择的操作是【%s】"%action_str)
  8. # 1,2,3,针对名片的操作
  9. if action_str in ["1","2","3"]:
  10. #新增名片
  11. if action_str=="1":
  12. cards_tools.new_card()
  13. # 显示全部
  14. elif action_str=="2":
  15. cards_tools.show_all()
  16. # 查询名片
  17. elif action_str=="3":
  18. cards_tools.search_card()
  19. # 0退出系统
  20. elif action_str=="0":
  21. print("欢迎再次使用名片管理系统")
  22. break
  23. # 如果在开发程序时,不希望立刻编写分支内部的代码
  24. # 可以使用pass关键字,表示一个占位符,保证程序结构正确
  25. # 程序运行时,pass不会至执行任何操作
  26. # pass
  27. # 其他内容输入错误,需要提示用户
  28. else:
  29. print("您输入的不正确。请重新选择!")

cards_tools.py功能函数

  1. # 记录所有的名片字典
  2. card_list=[]
  3. def show_menu():
  4. """"显示菜单"""
  5. print("*"*50)
  6. print("欢迎使用【名片管理系统】V1.0")
  7. print("")
  8. print("1.新增名片")
  9. print("2.显示全部")
  10. print("3.搜索名片")
  11. print("")
  12. print("0.退出系统")
  13. print("*"*50)
  14. def new_card():
  15. """"新增名片"""
  16. print("-"*50)
  17. print("新增名片")
  18. # 1.提示用户输入名片详细信息
  19. name_str = input("请输入姓名:")
  20. phone_str = input("请输入电话:")
  21. qq_str = input("请输入QQ:")
  22. email_str = input("请输入邮箱:")
  23. # 2.使用用户输入的信息建立一个名片字典
  24. card_dict={"name":name_str,
  25. "phone":phone_str,
  26. "qq":qq_str,
  27. "email":email_str}
  28. # 3.将名片字典添加到列表中
  29. card_list.append(card_dict)
  30. print(card_list)
  31. # 4.提示用户添加成功
  32. print("添加 %s 的名片成功!"%name_str)
  33. def show_all():
  34. """"显示所有名片"""
  35. print("-"*50)
  36. print("显示所有名片")
  37. # 判断是否存在名片记录,如果没有提示用户并且返回
  38. if len(card_list)==0:
  39. print("当前没有任何的名片,请使用新增功能添加名片!")
  40. # return 可以返回一个函数的结果
  41. # 下方的代码不会被执行
  42. # 如果return后面没有任何,表示返回调用函数的位置
  43. # 并且不返回任何结果
  44. return
  45. #打印表头
  46. for name in ["姓名","电话","QQ","邮箱"]:
  47. print(name,end="\t\t")
  48. print("")
  49. #打印分割线
  50. print("="*50)
  51. # 遍历名片列表依次输入字典信息
  52. for card_dict in card_list:
  53. print("%s\t\t%s\t\t%s\t\t%s"%(card_dict["name"],
  54. card_dict["phone"],
  55. card_dict["qq"],
  56. card_dict["email"]))
  57. def search_card():
  58. """"搜索名片"""
  59. print("-"*50)
  60. print("搜索名片")
  61. # 提示用户输入要搜索的姓名
  62. find_name=input("请输入要查询的姓名:")
  63. # 遍历名片列表,查询要搜索的内容,如果没有找到需要提示!
  64. for card_dict in card_list:
  65. if card_dict["name"]==find_name:
  66. print("姓名\t\t电话\t\tQQ\t\t邮箱")
  67. print("="*50)
  68. print("%s\t\t%s\t\t%s\t\t%s"%(card_dict["name"],
  69. card_dict["phone"],
  70. card_dict["qq"],
  71. card_dict["email"]))
  72. # 针对找到的名片记录执行修改和删除操作
  73. deal_card(card_dict)
  74. break
  75. else:
  76. print("抱歉,没有找到%s"%find_name)
  77. def deal_card(find_dict):
  78. """处理查找到的内容
  79. :param find_dict:查找到的名片
  80. """
  81. print(find_dict)
  82. action_str=input("请选择需要进行的操作 1(修改) 2(删除) 0 返回上级菜单")
  83. if action_str=="1":
  84. find_dict["name"]=input_card_info(find_dict["name"],"姓名[回车不修改]:")
  85. find_dict["phone"]=input_card_info(find_dict["phone"],"电话[回车不修改]:")
  86. find_dict["qq"]=input_card_info(find_dict["qq"],"QQ[回车不修改]:")
  87. find_dict["email"]=input_card_info(find_dict["email"],"email[回车不修改]:")
  88. print("修改名片成功!")
  89. if action_str=="2":
  90. card_list.remove(find_dict)
  91. print("删除名片成功!")
  92. def input_card_info(dict_value,tip_message):
  93. """输入名片信息
  94. :param dict_value: 原有的值
  95. :param tip_message: 用户输入的数据
  96. :return: 如果用户没有输入数据,那么就返回原有的值。否则,返回修改后的值
  97. """
  98. # 1.提示用户输入内容 tip_message
  99. result_str=input(tip_message)
  100. # 2.针对用户的输入进行判断,用户输入了内容直接返回结果
  101. if len(result_str)>0:
  102. return result_str
  103. # 3.如果用户没有输入内容,返回字典中原有的值dict_value
  104. else:
  105. return dict_value

发表评论

表情:
评论列表 (有 0 条评论,458人围观)

还没有评论,来说两句吧...

相关阅读