1. 程式人生 > 程式設計 >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["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()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。