python-14-零基础学python 函数练习 存储任意数量信息

学习内容:《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 不太理解这个意思

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值