1. 程式人生 > >Code for need ,Code for fun

Code for need ,Code for fun

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

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述