# 1)消息:编写一个名为display_message()的函数,打印一条消息,指出本章的主题是什么。调用这个函数,确认现实的信息正确无误。
def display_message():
print("This chapter is about functions.")
display_message()
# 2)喜欢的书:编写一个名为favorite_book()的函数,其中包含一个名为title的形参。让这个函数打印一条像下面这样的消息。One of my favorite books is Alice in Wonderland.调用这个函数,并将一本书的书名作为实参传递给它
def favorite_book(title):
print("One of my favorite books is " + title + ".")
favorite_book('Alice in Wonderland')
# 3)T恤:编写一个名为make_shirt()的函数,它接受一个尺码参数和打印 designs 的参数。这个函数应打印一条消息,概述了要制作的 T 恤的尺码和 designs 。先使用 位置实参来调用这个函数,再使用 关键字实参来调用这个函数。
def make_shirt(size,design):
print("The size of the shirt is " + size + " and the design is " + design + ".")
make_shirt('Large','Cool')
make_shirt(design='Cool',size='Large')
# 4)大号T恤:修改 make_shirt()函数,使其在默认情况下制作一件印有“I LOVE Python”的 大号T 恤。调用这个函数分别制作一件印有默认字样的大号体恤,一件印有默认字样的中号T恤,以及一件印有其他字样的T恤。
def make_shirt(size='Large',design='I LOVE Python'):
print("The size of the shirt is " + size + " and the design is " + design + ".")
make_shirt()
make_shirt(size='Medium')
make_shirt(size='Small',design='Cool')
# 5)城市:编写一个名为describe_city()的函数,它接受一个城市的名称,以及该城市所属的国家。这个函数应打印一个简单的句子,如Reykjavik是冰岛。给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,其中至少有一座城市不属于默认的国家。
def describe_city(city,country='China'):
print(city + " is in " + country + ".")
describe_city('Shanghai')
describe_city('Beijing')
describe_city('London')
# 6)城市名:编写一个名为city_country()的函数,它接受城市名和国家名。这个函数应返回一个格式为 City, Country 的字符串。至少使用三个城市至国家对调用这个函数,并打印它返回的值
def city_country(city,country):
return city + ", " + country
print(city_country('Shanghai','China'))
print(city_country('Beijing','China'))
print(city_country('London','England'))
# 7)专辑:编写一个名为make_album()的函数,它构建一个描述专辑的字典。这个函数至少需要接受一个专辑名和专辑的作者名。它可能接受一个额外的参数,如包含的专辑数。调用这个函数,并打印返回的字典。
def make_album(album_name,album_author,album_num=0):
album = {'album_name':album_name,'album_author':album_author}
if album_num:
album['album_num'] = album_num
return album
print(make_album('Album1','Author1'))
print(make_album('Album2','Author2',10))
# 8)消息:创建一个列表,其中包含一系列简短的文本消息。将这个列表传递给一个名为show_messages()的函数,这个函数会打印列表中的每条文本消息。
def show_messages(messages):
for i in messages:
print(i)
messages = ['message1','message2','message3']
show_messages(messages)
# 9)发送消息:在为第八题编写的程序中,编写一个send_messages()函数,将每条消息都打印出来并移到一个名为sent_messages的列表中。调用show_messages()函数,再将两个列表都打印出来,确认把消息移到了正确的列表中。
def show_messages(messages):
for i in messages:
print(i)
def send_messages(messages):
sent_messages = []
while messages:
message = messages.pop()
print(message)
sent_messages.append(message)
return sent_messages
messages = ['message1','message2','message3']
sent_messages = send_messages(messages)
show_messages(messages)
show_messages(sent_messages)
# 10)消息归档:修改第九题编写的程序,在调用函数send_messages()时,向它传递消息列表的副本。调用send_messages()函数后,将两个列表都打印出来,确认原始列表保留了所有的消息。
def show_messages(messages):
for i in messages:
print(i)
def send_messages(messages):
sent_messages = []
while messages:
message = messages.pop()
print(message)
sent_messages.append(message)
return sent_messages
messages = ['message1','message2','message3']
sent_messages = send_messages(messages[:])
show_messages(messages)
# 11)三明治:编写一个函数,他接受顾客要在三明治中添加的一系列食材。这个函数只有一个形参(它收集函数调用中提供的所有食材),并打印一条消息,对顾客点的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参
def make_sandwich(*toppings):
print("Making a sandwich with the following toppings:")
for topping in toppings:
print("- " + topping)
make_sandwich('ham')
make_sandwich('peanut butter', 'jelly')
make_sandwich('chicken', 'lettuce', 'mayo')
# 12)汽车:编写一个函数,将一辆汽车的信息存储在字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。在调用这个函数时,提供必不可少的信息,以及两个名值对,如颜色和选装配件。这个函数必须能够像下面这样调用:
# car=make_car('subaru','outback',color='blue',tow_package=True),打印返回的字典,确认正确地处理了所有的信息
def make_car(manufacturer,model,**car_info):
car_info['manufacturer'] = manufacturer
car_info['model'] = model
return car_info
car = make_car('subaru','outback',color='blue',tow_package=True)
print(car)