python實現一個函數版的名片管理系統過程解析

這篇文章主要介紹了python實現一個函數版的名片管理系統過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

本案例使用了自定義函數以及對字符串的常見操作、判斷語句和循環語句等知識。

要求

必須使用自定義函數,完成對程序的模塊化。

名片信息至少包括:姓名、電話、住址。

必須完成的功能:增、刪、改、查、退出。

分析

首先呢,我們應該先定義一個全局變量,用於存儲所有的名片信息。

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()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章