天天看點

Python程式設計:從入門到實踐第六章練習題第六章1、字典2、周遊字典

從零開始學Python第五天。

第六章

1、字典

6-1 人 :使用一個字典來存儲一個熟人的資訊,包括名、姓、年齡和居住的城市。該字典應包含鍵 first_name 、 last_name 、 age 和 city 。将存儲在該字典中的每項資訊都列印出來。

my={'first_name':'pan','last_name':'sz','age':21,'city':'nanjin'}
print('first_name is '+my['first_name'])
print('last_name is '+my['last_name'])
print('age is '+str(my['age']))
print('city is '+my['city'])
           

6-2 喜歡的數字 :使用一個字典來存儲一些人喜歡的數字。請想出 5 個人的名字,并将這些名字用作字典中的鍵;想出每個人喜歡的一個數字,并将這些數字作為值存儲在字典中。列印每個人的名字和喜歡的數字。為讓這個程式更有趣,通過詢問朋友確定資料是真實的。

favorite_number={'a':1,'b':2,'c':3,'d':4,'e':5}
print('a like '+str(favorite_number['a']))
print('b like '+str(favorite_number['b']))
print('c like '+str(favorite_number['c']))
print('d like '+str(favorite_number['d']))
print('e like '+str(favorite_number['e']))
           

6-3 詞彙表 : Python 字典可用于模拟現實生活中的字典,但為避免混淆,我們将後者稱為詞彙表。  想出你在前面學過的 5 個程式設計詞彙,将它們用作詞彙表中的鍵,并将它們的含義作為值存儲在詞彙表中。  以整潔的方式列印每個詞彙及其含義。為此,你可以先列印詞彙,在它後面加上一個冒号,再列印詞彙的含義;也可在一行列印詞彙,再使用換行符(\n )插入一個空行,然後在下一行以縮進的方式列印詞彙的含義。

programme_word={'int':'整型','if':'判斷','for':'循環','print':'輸出','append':'清單元素添加'}
print('int :'+programme_word['int'])
print('if :'+programme_word['if'])
print('for :'+programme_word['for'])
print('print :'+programme_word['print'])
print('append :'+programme_word['append'])
           

這一小節有個疑問就是,在使用字典的時候,是否是提前指定好鍵的,需要通過查詢得到的隻有指定鍵所存儲的值,這一點在後面的學習中希望得到解決。應該在周遊字典也就是下一章會有。

2、周遊字典

6-4 詞彙表 2 :既然你知道了如何周遊字典,現在請整理你為完成練習 6-3 而編寫的代碼,将其中的一系列 print 語句替換為一個周遊字典中的鍵和值的循環。确定該循環正确無誤後,再在詞彙表中添加 5 個 Python 術語。當你再次運作這個程式時,這些新術語及其含義将自動包含在輸出中。

programme_word={'int':'整型','if':'判斷','for':'循環','print':'輸出','append':'清單元素添加','a':'a1','b':'b1'}
print('int :'+programme_word['int'])
print('if :'+programme_word['if'])
print('for :'+programme_word['for'])
print('print :'+programme_word['print'])
print('append :'+programme_word['append'])
for i,j in programme_word.items():
    print('\n'+i+' menas :'+j)
           

6-5 河流 :建立一個字典,在其中存儲三條大河流及其流經的國家。其中一個鍵 —值對可能是'nile': 'egypt' 。  使用循環為每條河流列印一條消息,如“ The Nile runs through Egypt. ”。  使用循環将該字典中每條河流的名字都列印出來。  使用循環将該字典包含的每個國家的名字都列印出來。

river_country={'changjiang':'China','Amazon river':'Amazon','Nile':'egypt' }
for river,country in river_country.items():
    print('The '+river.title()+' runs through '+country.title())
for river in river_country.keys():
    print(river.title())
for country in river_country.values():
    print(country.title())
           

6-6 調查 :在 6.3.1 節編寫的程式 favorite_languages.py 中執行以下操作。  建立一個應該會接受調查的人員名單,其中有些人已包含在字典中,而其他人未包含在字典中。  周遊這個人員名單,對于已參與調查的人,列印一條消息表示感謝。對于還未參與調查的人,列印一條消息邀請他參與調查。

favorite_languages = {
 'jen': 'python',
 'sarah': 'c',
 'edward': 'ruby',
 'phil': 'python',
 }
Investigated_person=['pan','jen','sarah','xia']
for name in Investigated_person:
    if name in favorite_languages.keys():
        print('Dear '+name+' thanks for participating in the survey!')
    else:print('Dear '+name+' please participate in the survey')
           

6-7 人 :在為完成練習 6-1 而編寫的程式中,再建立兩個表示人的字典,然後将這三個字典都存儲在一個名為 people 的清單中。周遊這個清單,将其中每個人的所有資訊都列印出來。

my={'first_name':'pan','last_name':'sz','age':21,'city':'nanjin'}
ding={'first_name':'ding','last_name':'rx','age':22,'city':'changzhou'}
feng={'first_name':'feng','last_name':'fy','age':22,'city':'xuzhou'}
people=[my,ding,feng]
for pe in people:
    print(pe)
           

6-8 寵物 :建立多個字典,對于每個字典,都使用一個寵物的名稱來給它命名;在每個字典中,包含寵物的類型及其主人的名字。将這些字典存儲在一個名為 pets 的清單中,再周遊該清單,并将寵物的所有資訊都列印出來。

bigyellow={'type':'dog','master':'pan'}
meimei={'type':'cat','master':'ma'}
manan={'type':'horse','master':'wang'}
pets=[bigyellow,meimei,manan]
for name in pets:
    for type, master in name.items():
        print('\n'+type+' '+master)
           

6-9 喜歡的地方 :建立一個名為 favorite_places 的字典。在這個字典中,将三個人的名字用作鍵;對于其中的每個人,都存儲他喜歡的 1~3 個地方。為讓這個練習更有趣些,可讓一些朋友指出他們喜歡的幾個地方。周遊這個字典,并将其中每個人的名字及其喜歡的地方列印出來。

favorite_places={
    'a':['a1'],
    'b':['b1','b2'],
    'c':['c1','c2','c3']
}
for name,place in favorite_places.items():
    for p in place:
        print(name+' like '+p)
           

6-10 喜歡的數字 :修改為完成練習 6-2 而編寫的程式,讓每個人都可以有多個喜歡的數字,然後将每個人的名字及其喜歡的數字列印出來。

favorite_number={
    'a':[1,6],
    'b':[2,7],
    'c':[3,8],
    'd':[4,9],
    'e':[5,10]
}
for name, number in favorite_number.items():
    for n in number:
        print(name+' likes '+str(n))
           

6-11 城市 :建立一個名為 cities 的字典,其中将三個城市名用作鍵;對于每座城市,都建立一個字典,并在其中包含該城市所屬的國家、人口約數以及一個有關該城市的事實。在表示每座城市的字典中,應包含 country 、 population 和 fact 等鍵。将每座城市的名字以及有關它們的資訊都列印出來。

cities={
    'nanjin':{'country':'China','population':'9,314,685','fact':'Jiangsu province'},
    'Washington':{'country':'America','population':'6,724,540','fact':'capital of the United States'},
    'London':{'country':'England','population':'66,573,504','fact':'The City Of Fog'}
}
for city,message in cities.items():
    print('\n'+city+': ')
    for keys,values in message.items():
        print(keys+' '+values)
           

6-12 擴充 :本章的示例足夠複雜,可以以很多方式進行擴充了。請對本章的一個示例進行擴充:添加鍵和值、調整程式要解決的問題或改進輸出的格式。 等待後續的實戰再來改進吧,昨天出差,跑了一天确實沒精力學了。補上補上,希望繼續堅持。