【《Python编程: 从入门到实践》习题答案--第八章:<函数>】

12 篇文章 6 订阅
# 8-1 消息 : 编写一个名为display_message() 的函数, 它打印一个句子, 指出你在本章学的是什么。 
# 调用这个函数, 确认显示的消息正确无误。
def display_message():
	print('本章学习内容:def(函数)')
display_message()

# 8-2 喜欢的图书 : 编写一个名为favorite_book() 的函数, 其中包含一个名为title 的形参。 这个函数打印一条消息, 
# 如One of my favorite books isAlice in Wonderland 。 调用这个函数, 并将一本图书的名称作为实参传递给它。
def favorite_book(title,price):
	print('One of my favorite books is: ' + title)
favorite_book('java程序设计','')

# 8-3 T恤 : 编写一个名为make_shirt() 的函数, 它接受一个尺码以及要印到T恤上的字样。 
# 这个函数应打印一个句子, 概要地说明T恤的尺码和字样。
# 使用位置实参调用这个函数来制作一件T恤; 再使用关键字实参来调用这个函数。
def make_shirt(size,msg):
	if msg == '':
		print('这件t恤衫的尺寸是:' + size + '; 印花文字为:' + '空')
	else:
		print('这件t恤衫的尺寸是:' + size + ';印花文字为:' + msg)
make_shirt('XXXL','')
make_shirt('XXXL',msg = 'hello_world!')

# 8-4 大号T恤 : 修改函数make_shirt() , 使其在默认情况下制作一件印有字样“I love Python”的大号T恤。 
# 调用这个函数来制作如下T恤: 一件印有默认字样的大号T恤、 
# 一件印有默认字样的中号T恤和一件印有其他字样的T恤(尺码无关紧要) 。
def make_shirt(size,msg = 'I love Python'):
	print('这件t恤衫的尺寸是:' + size + ';印花文字为:' + msg)
make_shirt('大号T恤')
make_shirt('中号T恤')
make_shirt('小号T恤','其他字样')

# 8-5 城市 : 编写一个名为describe_city() 的函数, 它接受一座城市的名字以及该城市所属的国家。 
# 这个函数应打印一个简单的句子, 如Reykjavik is in Iceland 。 给用于存储国家的形参指定默认值。 
# 为三座不同的城市调用这个函数, 且其中至少有一座城市不属于默认国家。
def describe_city(city_name,city_belong_country = 'china'):
	print(city_name + ' is in ' + city_belong_country)
describe_city('shanghai')
describe_city('beijing')
describe_city('DC','america')

# 8-6 城市名 : 编写一个名为city_country() 的函数, 它接受城市的名称及其所属的国家。 
# 这个函数应返回一个格式类似于下面这样的字符串:"Santiago, Chile"
# 至少使用三个城市-国家对调用这个函数, 并打印它返回的值。
def city_country(city_name,city_belong_country):
	city_country1 = city_name + ',' +city_belong_country
	return city_country1
a = city_country('shanghai','china')
b = city_country('beijing','china')
c = city_country('DC','America')
print(a)
print(b)
print(c)

# 8-7 专辑 : 编写一个名为make_album() 的函数, 它创建一个描述音乐专辑的字典。 
# 这个函数应接受歌手的名字和专辑名, 并返回一个包含这两项信息的字典。 使用这个函数创建三个表示不同专辑的字典, 
# 并打印每个返回的值, 以核实字典正确地存储了专辑的信息。给函数make_album() 添加一个可选形参, 
# 以便能够存储专辑包含的歌曲数。 如果调用这个函数时指定了歌曲数, 就将这个值添加到表示专辑的字典中。 调用这个
# 函数, 并至少在一次调用中指定专辑包含的歌曲数。
def make_album(singer_name,album_name,song_number = ''):
	if song_number:
		s_a =  {'singer_name':singer_name,'album_name':album_name,'song_number' : song_number}
	else:
		s_a = {'singer_name':singer_name,'album_name':album_name}
	return s_a
a = make_album('HanHong','QingZangGaoYuan','5')
b = make_album('AndiLiu','WangQingShui')
c = make_album('LiuHuan','YouAndMe','7')
print(a)
print(b)
print(c)

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

s_n_inp = '请输入歌手名:(输入’quit‘后退出)'
a_n_inp = '请输入专辑名:(输入’quit‘后退出)'
ac = True
while ac:
	a = input(s_n_inp)
	b = input(a_n_inp)
	if a == 'quit' or b == 'quit' :
		break
	else:
		c = make_album(a,b)
		print(c)

# 8-9 魔术师 : 创建一个包含魔术师名字的列表, 并将其传递给一个名为show_magicians() 的函数, 这个函数打印列表中每个魔术师的名字。
name_list = ['mag1','mag2','mag3']
def show_magicians():
	for name in name_list:
		print(name)
show_magicians()

# 8-10 了不起的魔术师 : 在你为完成练习8-9而编写的程序中, 编写一个名为make_great() 的函数, 
# 对魔术师列表进行修改, 在每个魔术师的名字中都加入字样“theGreat”。 调用函数show_magicians() , 确认魔术师列表确实变了。
name_list = ['mag1','mag2','mag3']
name_change = []
def make_great(name_list,name_change):
	while name_list:
		cur = name_list.pop()
		cur = 'great' + cur
		name_change.append(cur)
	
def show_magicians(name_change):
	for name in name_change:
		print(name)
		
make_great(name_list,name_change)
show_magicians(name_change)


# 8-11 不变的魔术师 : 修改你为完成练习8-10而编写的程序, 在调用函数make_great() 时, 向它传递魔术师列表的副本。 
# 由于不想修改原始列表, 请返回修改后的列表, 并将其存储到另一个列表中。 分别使用这两个列表来调用show_magicians() , 
# 确认一个列表包含的是原来的魔术师名字, 而另一个列表包含的是添加了字样“the Great”的魔术师名字。
name_list = ['mag1','mag2','mag3']
name_change = []

def make_great(name_list,name_change):
	while name_list:
		cur = name_list.pop()
		cur = 'great' + cur
		name_change.append(cur)
def show_magicians(name_change)
	for name in name_change:
		print(name)

make_great(name_list[:],name_change)
show_magicians(name_list)
show_magicians(name_change)

	

# 8-12 三明治 : 编写一个函数, 它接受顾客要在三明治中添加的一系列食材。 这个函数只有一个形参(它收集函数调用中提供的所有食材) , 
# 并打印一条消息, 对顾客点的三明治进行概述。 调用这个函数三次, 每次都提供不同数量的实参。
def sand_make(*ingredients):
	print( '添加的食材有:')
	for i in ingredients:
		print('--' + i)
	
sand_make('1','2','3','4')
sand_make('0')
sand_make('1','2')


# 8-13 用户简介 : 复制前面的程序user_profile.py, 在其中调用build_profile() 来创建有关你的简介; 
# 调用这个函数时, 指定你的名和姓, 以及三个描述你的键-值对。
def user_profile(first,last,**else_info):
	name_file = {}
	name_file['first_name'] = first
	name_file['last_name']  = last
	for k ,v in else_info.items():
		name_file[k] = v
	return name_file

user_a = user_profile('ma','yun',company = 'TaoBao',Sex = 'man')
print(user_a)
user_b = user_profile('1','2',Sex = 'man')
print(user_b)
	


# 8-14 汽车 : 编写一个函数, 将一辆汽车的信息存储在一个字典中。 这个函数总是接受制造商和型号, 还接受任意数量的关键字实参。 
# 这样调用这个函数: 提供必不可少的信息, 以及两个名称—值对, 如颜色和选装配件。 这个函数必须能够像下面这样进行调用:
# car = make_car('subaru', 'outback', color='blue', tow_package=True)
# 打印返回的字典, 确认正确地处理了所有的信息。
def car_msg(manufacturer,model,**else_info):
	bas_msg = {}
	bas_msg['manufacturer'] = manufacturer
	bas_msg['model'] = model
	for k ,v in else_info.items():
		bas_msg[k] = v
	return bas_msg
	
car = car_msg('subaru', 'outback', color='blue', tow_package=True)
print(car)


  • 8
    点赞
  • 3
    评论
  • 12
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值