8-12 三明治:编写一个函数,它接受顾客要在三明治中添加的一系列食材。这个函数只有一个形参(它收集函数调用中提供的所有食材),并打印一条消息,对顾客点的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参。
def make_sandwiches(*ingredients):
"""在三明治中添加食材"""
print("I'll add these in your sandwich:")
for ingredient in ingredients:
print('-'+ingredient)
#调用函数
make_sandwiches('egg','bacon')
make_sandwiches('banana')
make_sandwiches('egg','lettuce','ham')
运行结果:
8-13 用户简介:复制前面的程序user_profile.py,在其中调用build_profile()来创建有关你的简介;调用这个函数时,指定你的名和姓,以及三个描述你的键-值对。
def build_profile(first,last,**user_info):
"""创建一个了解用户信息的字典"""
profile={}
profile['first name']=first
profile['last name']=last
for key,value in user_info.items():
profile[key]=value
return profile
user_profile=build_profile('pip','awesome',
family_members='4',
girl_friend='no')
print(user_profile)
调用函数时,形参**user_info让python创建一个名为user_info的空字典,并将收到的键值对封装进这个字典,似乎默认输入的“键”是字符串。
运行结果:
8-14 汽车:编写一个函数,将一辆汽车的信息存储在一个字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。这样调用这个函数:提供必不可少的信息,以及两个名称—值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:
car = make_car('subaru', 'outback', color='blue', tow_package=True)
打印返回的字典,确认正确地处理了所有的信息。
和上一个一样的。
def car_information(manufacturer,model,**car_info):
"""创建一个了解汽车信息的字典"""
profile={}
profile['manufacturer']=manufacturer
profile['model']=model
for key,value in car_info.items():
profile[key]=value
return profile
car_profile=car_information('subaru','outback',
color='red',
tow_package=True)
print(car_profile)
运行结果: