1. 程式人生 > >課後練習、十四

課後練習、十四

8-12 三明治 :編寫一個函式,它接受顧客要在三明治中新增的一系列食材。這個函式只有一個形參(它收集函式呼叫中提供的所有食材),並列印一條訊息,對顧客 點的三明治進行概述。呼叫這個函式三次,每次都提供不同數量的實參。

8-13 使用者簡介 :複製前面的程式user_profile.py,在其中呼叫build_profile() 來建立有關你的簡介;呼叫這個函式時,指定你的名和姓,以及三個描述你的鍵-值 對。

8-14 汽車 :編寫一個函式,將一輛汽車的資訊儲存在一個字典中。這個函式總是接受制造商和型號,還接受任意數量的關鍵字實參。這樣呼叫這個函式:提供必不可 少的資訊,以及兩個名稱—值對,如顏色和選裝配件。這個函式必須能夠像下面這樣進行呼叫:

car = make_car('subaru', 'outback', color='blue', tow_package=True)

列印返回的字典,確認正確地處理了所有的資訊。

要點:懂得在函式裡處理字典,學會使用一形多實,或多形多實

def smz(*sc):
    print(sc)
smz('A')  #  未加*號前只能呼叫一個實參。
smz('D', 'E', 'F') # 加*號多個呼叫。
smz('G', 'H', 'I')

# ***************************************

def build_profile(first, last, **user_info):# **號,函式接受引數為字典。
    profile = {} # 這裡有兩個字典 user_info 和 profile。
    profile['first_name'] = first # 新增鍵值對。
    profile['last_name'] = last
    for key, value in user_info.items():# 遍歷user_info中的鍵值對。
        profile[key] = value # 賦值到profile,這裡的value屬於user_info。
    return profile # 返回完成函式定義。

user_profile = build_profile('W', 'F',
              location = 'princeton',
              field = 'physics')
print(user_profile)

# ***************************************

def make_car(s, c, **d):
    dic = {}
    dic['mfrs'] = s
    dic['model'] = c
    for key, value in d.items():
        dic[key] = value
    return dic
car = make_car('subaru', 'outback', color='blue', tow_package=True)
print(car)


# ***************************************