【Pythonプログラミング:入門から実践まで】練習問題の答え--第八章:】


# 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)