学习内容:《python编程:从入门到实践》第二版
知识点:
函数与字典的应用,任意数量实参*、创建空字典**
调用函数:关键字实参、任意数量实参
return返回值
练习内容:
练习8-12:三明治
编写一个函数,它接受顾客要在三明治中添加的一系列食材。这个函数只有一个形参(它收集函数调用中提供的所有食材),并打印一条消息,对顾客点的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参。
练习8-13:用户简介
复制前面的程序user_profile.py,在其中调用build_profile()来创建有关你的简介。调用这个函数时,指定你的名和姓,以及三个描述你的键值对。
练习8-14:汽车
编写一个函数,将一辆汽车的信息存储在字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。这样调用该函数:提供必不可少的信息,以及两个名称值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:[插图]打印返回的字典,确认正确地处理了所有的信息。
我的代码&运行结果:
练习8-12:三明治
编写一个函数,它接受顾客要在三明治中添加的一系列食材。这个函数只有一个形参(它收集函数调用中提供的所有食材),并打印一条消息,对顾客点的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参。
def make_sandwich(*toppings):
print("你点了一个三明治,要求配料如下")
for topping in toppings:
print(f"-{topping}")
make_sandwich('onion','seafood')
make_sandwich('seafood')
make_sandwich('chicken','tomato')
我给答案做了一个升级,但是遇到问题了
结果中,make_sandwich的函数调用不成功,不知道为啥,最后打印是空的,难道因为元组是空的吗?
def ask_sandwich(add_toppings):
prompt = "What kind of sandwich do you like?"
prompt += "add topping you like"
add_toppings = []
while True:
topping = input(prompt)
if topping != '1':
add_toppings.append(topping)
print("add topping you like, enter 1 to stop")
if topping =="1":
print(add_toppings)
break
def make_sandwich(*toppings):
print("你点了一个三明治,要求配料如下")
for topping in toppings:
print(f"-{topping}")
f_toppings =[]
ask_sandwich(f_toppings)
make_sandwich(f_toppings)
注意点:
练习8-13:用户简介
复制前面的程序user_profile.py,在其中调用build_profile()来创建有关你的简介。调用这个函数时,指定你的名和姓,以及三个描述你的键值对。
def build_profile(first,last,**user_info):
user_info['first_name'] = first
user_info['last_name'] = last
return user_info
user_profile = build_profile('Chou','Jay',location='China',field='music',album='范特西')
print(user_profile)
注意点:
1.在调用函数中使用的键值对,其中键不需要加’‘,值才需要。
2.最后结果中的字典,键会自动加上‘’
练习8-14:汽车
编写一个函数,将一辆汽车的信息存储在字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。这样调用该函数:提供必不可少的信息,以及两个名称值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:
car = make_car('subaru','outback',color='blue',tow_package=True)
打印返回的字典,确认正确地处理了所有的信息。
def make_car(maker,model,**car_info):
car_info['car maker'] = maker
car_info['car model'] = model
return car_info
car_profile = make_car('subaru','outback',color='blue',tow_package=True)
print(car_profile)
car_profile = make_car('Audi','A6',color='black',tow_package=False)
print(car_profile)
注意点:
1.不需要再建一个空的字典,**car_info就建立了
2.return返回 函数
3.tow package = True 不太理解这个意思