課後練習、十三
8-7 專輯 :編寫一個名為make_album() 的函式,它建立一個描述音樂專輯的字典。這個函式應接受歌手的名字和專輯名,並返回一個包含這兩項資訊的字典。使 用這個函式建立三個表示不同專輯的字典,並列印每個返回的值,以核實字典正確地儲存了專輯的資訊。
給函式make_album() 新增一個可選形參,以便能夠儲存專輯包含的歌曲數。如果呼叫這個函式時指定了歌曲數,就將這個值新增到表示專輯的字典中。呼叫這個 函式,並至少在一次呼叫中指定專輯包含的歌曲數。
8-8 使用者的專輯 :在為完成練習8-7編寫的程式中,編寫一個while 迴圈,讓使用者輸入一個專輯的歌手和名稱。獲取這些資訊後,使用它們來呼叫函 數make_album() ,並將建立的字典打印出來。在這個while 迴圈中,務必要提供退出途徑。
要點在於理解透徹定義函式和呼叫,字典與列表之間的轉換
def make_album(singer,song, num = ''): album = {'singer':singer, 'song': song, 'num': num} return album A = make_album('ldh','wqs',3) print(A) while 1: singer = input("Please enter singer's name") song = input("Please enter song's name") num = input('Number') if song == 'quit': # 在song中輸入'quit'退出 break print(make_album(singer, song, num))
8-9 魔術師 :建立一個包含魔術師名字的列表,並將其傳遞給一個名為show_magicians() 的函式,這個函式列印列表中每個魔術師的名字。
8-10 了不起的魔術師 :在你為完成練習8-9而編寫的程式中,編寫一個名為make_great() 的函式,對魔術師列表進行修改,在每個魔術師的名字中都加入字樣“the Great”。呼叫函式show_magicians() ,確認魔術師列表確實變了。
8-11 不變的魔術師 :修改你為完成練習8-10而編寫的程式,在呼叫函式make_great() 時,向它傳遞魔術師列表的副本。由於不想修改原始列表,請返回修改後的 列表,並將其儲存到另一個列表中。分別使用這兩個列表來呼叫show_magicians() ,確認一個列表包含的是原來的魔術師名字,而另一個列表包含的是添加了字 樣“the Great”的魔術師名字。
要點使用列表元素移動法進行修改列表元素,函式的呼叫,歷出列表的方式。
mss = ['A', 'B', 'C']
dmss = []
mss1 = mss.copy() # 直接複製列表mss
def show_magicians(mss):# 可理解成定義一個算術塊,需要時隨時呼叫。
for name in mss:
print(name)
show_magicians(mss)
def make_great(mss, dmss): # 移動列表元素方法,定義變數對元素內容進行修改。
while mss: # 迴圈列表mss對裡面元素逐個移動
ms = mss.pop()
dms = 'The Great ' + ms # 定義dms為修改變數
dmss .append(dms)
def show_magicianss(dmss):
for i in dmss:
print(i)
make_great(mss, dmss)
show_magicianss(sorted(dmss)) # 排序顯示
show_magicianss(mss1) # 呼叫列表mss1