Python编程-从入门到实践(第2版)第八章练习代码

练习8-1:消息

编写一个名为display_message() 的函数,它打印一个句子,指出你在本章学的是什么。调用这个函数,确认显示的消息正确无误。
# 创建函数
def display_message():
    print("I learned functions in this section.")

# 调用函数
display_message()

练习8-2:喜欢的图书

编写一个名为favorite_book() 的函数,其中包含一个名为title的形参。这个函数打印一条消息,如One of my favorite books isAlice in Wonderland。调用这个函数,并将一本图书的名称作为实参传递给它。
# 定义函数
def favorite_book(title):
    print(f"One of my favorite book is {title.title()}")

# 调用函数
favorite_book('godfather')

练习8-3:T恤

编写一个名为make_shirt() 的函数,它接受一个尺码以及要印到T恤上的字样。这个函数应打印一个句子,概要地说明T恤的尺码和字样。
使用位置实参调用这个函数来制作一件T恤;再使用关键字实参来调用这个函数。
# 定义一个函数
def make_shirt(size, style):
    print(f"The T-shirt should be {size.title()} size and got {style.title()} characters on it.")

# 位置实参调用函数
make_shirt('xL', '*** you tomboy')

# 关键字实参调用函数
make_shirt(style = 'just like tT', size = "l")

练习8-4:大号T恤

修改函数make_shirt() ,使其在默认情况下制作一件印有字样“I love Python”的大号T恤。调用这个函数来制作如下T恤:一件印有默认字样的大号T恤、一件印有默认字样的中号T恤和一件印有其他字样的T恤(尺码无关紧要)。
# 定义函数
def make_shirt(size, style = 'i love Python'):
    print(f"The T-shirt should be {size.title()} size and got {style.title()} characters on it.")

# 调用函数,style默认情况下的大号T恤
make_shirt(size = 'large')

# 调用函数,style默认情况下的中号T恤
make_shirt(size = 'middle')

# 调用函数,style不在默认情况下
make_shirt(style = '*** you python', size = 'small')

练习8-5:城市

编写一个名为describe_city() 的函数,它接受一座城市的名字以及该城市所属的国家。这个函数应打印一个简单的句子,如Reykjavik is in Iceland 。给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,且其中至少有一座城市不属于默认国家。
# 定义函数
def describe_city(city, country = 'china'):
        print(f"{city.title()} is in {country.title()}.")

# 调用函数
describe_city('beijing')
describe_city('shanghai')
describe_city('london', 'united kingdom')

练习8-6:城市名

编写一个名为city_country() 的函数,它接受城市的名称及其所属的国家。这个函数应返回一个格式类似于下面这样的字符串:“Santiago, Chile”。至少使用三个城市-国家对调用这个函数,并打印它返回的值。
# 定义函数
def city_country(city, country):
    print(f"{city.title()}, {country.title()}.")

# 调用函数
city_country("santiago", "chile")
city_country("london", "united kingdom")
city_country("beijing", "china")

练习8-7:专辑

编写一个名为make_album() 的函数,它创建一个描述音乐专辑的字典。这个函数应接受歌手的名字和专辑名,并返回一个包含这两项信息的字典。使用这个函数创建三个表示不同专辑的字典,并打印每个返回的值,以核实字典正确地存储了专辑的信息。
给函数make_album() 添加一个可选形参,以便能够存储专辑包含的歌曲数。如果调用这个函数时指定了歌曲数,就将这个值添加到表示专辑的字典中。调用这个函数,并至少在一次调用中指定专辑包含的歌曲数。
# 定义函数
def make_album(singer_name, album_name, song_num = None):
    # 专辑信息
    if song_num == None:
        album_info = {
            'singer' : singer_name,
            'album' : album_name,
        }
    else:
        album_info = {
            'singer' : singer_name,
            'album' : album_name,
            'song number' : song_num,
        }

    # 打印专辑信息
    print(album_info)

# 创建字典对象
album_1 = make_album(singer_name = 'Jay Chou', album_name= '依然范特西')
album_2 = make_album(singer_name = 'JJ Lin', album_name= '和自己对话')
album_3 = make_album(singer_name = 'Kun', album_name= 'YOUNG', song_num = 99)

练习8-8:用户的专辑

在为完成练习 8-7 编写的程序中,编写一个 while 循环,让用户输入一个专辑的歌手和名称。获取这些信息后,使用它们来调用函数 make_album(),并将创建的字典打印出来。在这个 while 循环中,务必要提供退出途径。
# 定义函数
def make_album(singer_name, album_name, song_num = None):
    # 专辑信息
    if song_num == None:
        album_info = {
            'singer' : singer_name,
            'album' : album_name,
        }
    else:
        album_info = {
            'singer' : singer_name,
            'album' : album_name,
            'song number' : song_num,
        }

    # 打印专辑信息
    print(album_info)

# 设置信标
activate = True

# 设置循环
while activate:
    
    # 判断是否要输入专辑信息
    flag = input("Would you like to tell me what's your favorite singer and album? (y/n).")
    # 如果是n,跳出循环
    if flag == 'n':
        break
    
    singer_name = input('Please type in your favorite singer name.')
    album_name = input('Please tell me his/her famous album name.')
    song_num = input("How many songs in this album? If you don't know, just type in 'None'.")

    make_album(singer_name = singer_name, album_name = album_name, song_num = song_num)

练习8-9:消息

创建一个列表,其中包含一系列简短的文本消息。将该列表传递诶一个个名为show_messages()的函数,这个函数会打印列表中的每条文本消息。
# 创建函数
def show_messages(messages):
    # 利用while循环
    while messages:
        print(messages.pop())

# 创建文本列表
messages = ['Python是这个世界上最好的语言', '没有之一', '如果你想反驳我', '除非你会C++',]

# 创建示例
# 颠倒列表
messages.reverse()
show_messages(messages)

练习8-10:发送消息

在你为完成练习8-9而编写的程序中,编写一个名为send_messages()的函数,将每条信息都打印出来并移到一个名为sent_messages的列表中。调用函数send_messages(),再将两个列表都打印出胡来,确认正确地移动了消息
# 创建函数send_messages
def send_messages(message, sent_message):
    sent_message.append(message)

# 创建函数show_messages
def show_messages(messages, sent_message):
    # 利用while循环
    while messages:
        message = messages.pop()
        send_messages(message, sent_message)

# 创建文本列表
messages = ['Python是这个世界上最好的语言', '没有之一', '如果你想反驳我', '除非你会C++',]

# 创建空列表
sent_messages = []
show_messages(messages, sent_messages)

# 打印两个列表
print(messages)
print(sent_messages)

练习8-11:消息归档

修改你为完成练习8-10而编写的程序,在调用函数send_messages()时,向它传递消息列表的副本。调用函数send_messages()后,将两个列表都打印出来,确认保留了原始列表中的消息
# 创建函数send_messages
def send_messages(message, sent_message):
    sent_message.append(message)

# 创建函数show_messages
def show_messages(messages, sent_message):
    # 利用while循环
    while messages:
        message = messages.pop()
        send_messages(message, sent_message)

# 创建文本列表
messages = ['Python是这个世界上最好的语言', '没有之一', '如果你想反驳我', '除非你会C++',]

# 创建空列表
sent_messages = []

# 创建messages的副本
messages_copy = messages[:]

# 传递副本
show_messages(messages_copy, sent_messages)

# 打印两个列表
print(messages)
print(sent_messages)

练习8-12:三明治

编写一个函数,它接受顾客要在三明治中添加的一系列食材。这个函数只有一个形参(它收集函数调用中提供的所有食材),并打印一条消息,对顾客点的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参。
# 编写函数
def foods(*toppings):
   # 打印消息
   print("Your order is under below:")
   print(toppings) 

# 调用函数
foods('apple', 'banana', 'pineapple')
foods('sausage', 'watermelon')
foods('Nothing')

练习8-13:用户简介

复制前面的程序user_profile.py,在其中调用build_profile() 来创建有关你的简介;调用这个函数时,指定你的名和姓,以及三个描述你的键值对。
# 定义函数
def build_profile(first, last, **user_info):
    user_info['fist_name'] = first
    user_info['last_name'] = last
    return user_info

# 调用函数
# 输入键值对的时候只能使用等号
user_profile = build_profile('Chen', 'Lesion', Location = 'BeiJing', Age = 99, Gender = 'Male')

# 打印列表
print(user_profile)

练习8-14:汽车

编写一个函数,将一辆汽车的信息存储在一个字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。这样调用这个函数:提供必不可少的信息,以及两个名称值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:
car = make_car(‘subaru’, ‘outback’, color=‘blue’, tow_package=True)
打印返回的字典,确认正确地处理了所有的信息。
# 定义函数
def build_car_profile(factory, type_number, **car_info):
    car_info['factory'] = factory
    car_info['type'] = type_number
    return car_info

# 调用函数
# 输入键值对的时候只能使用等号
car_profile = build_car_profile('BMW', 'M8', Color = 'Blue', tow_package = False)

# 打印列表
print(car_profile)





#Python#
全部评论
跟着楼主一起学习
点赞 回复 分享
发布于 2022-10-23 16:27 陕西

相关推荐

野猪不是猪🐗:把你的学校加黑,加粗,斜体,下划线,描边,内阴影,内发光,投影,外发光,再上渐变色,居中,放大到最大字号,再把简历里其它内容删了,就行了
点赞 评论 收藏
分享
02-12 00:59
已编辑
哈尔滨工业大学 产品经理
华为 软件开发岗 20.6*16薪 本科
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务