1. 程式人生 > >課後練習、十三

課後練習、十三

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