《Python從入門到實踐》第六章動手試一試

夜云流光發表於2024-11-21

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

friend = {
	'first_name':'Liu',
	'last_name':'Join',
	'city':'Wuhan',
	'age':33
}
print(friend)

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

lucky_numbers = {
	'jone':18,
	'xinxin':20,
	'quanquan':88,
	'wenwen':66,
	'huahua':188,
}
print(lucky_numbers)

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

functions = {
	'print':'列印輸出內容',
	'del':'刪除功能',
	'for':'迴圈遍歷',
	'if':'條件選擇',
	'append':'可用於新增列表元素',
}
print('print:'+functions['print'])
print('del:'+functions['del'])
print('for:'+functions['for'])
print('if:'+functions['if'])
print('append:'+functions['append'])

6-4 詞彙表2 :既然你知道了如何遍歷字典,現在請整理你為完成練習6-3而編寫的程式碼,將其中的一系列print 語句替換為一個遍歷字典中的鍵和值的迴圈。確定該迴圈正確無誤後,再在詞彙表中新增5個Python術語。當你再次執行這個程式時,這些新術語及其含義將自動包含在輸出中。

functions = {
	'print':'列印輸出內容',
	'del':'刪除功能',
	'for':'迴圈遍歷',
	'if':'條件選擇',
	'append':'可用於新增列表元素',
}
for key,values in functions.items():
	print(key.title()+':'+values)

6-5 河流 :建立一個字典,在其中儲存三條大河流及其流經的國家。其中一個鍵—值對可能是'nile': 'egypt' 。

  • 使用迴圈為每條河流列印一條訊息,如“The Nile runs through Egypt.”。
  • 使用迴圈將該字典中每條河流的名字都列印出來。
  • 使用迴圈將該字典包含的每個國家的名字都列印出來。
rivers = {
	'黃河':'中國',
	'恆河':'印度',
	'湄公河':'越南',
}
for country in rivers.values():
	print('國家啊:'+country)

for river in rivers.keys():
	print('河流啊:' + river)

for river,country in rivers.items():
	print(river+'經過'+country)

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

favorite_languages = {
	'jen': 'python',
	'sarah': 'c',
	'edward': 'ruby',
	'phil': 'python',
}
# 回顧一下元組
respondents = ('jen','sarah','wayne','jhon')
for resp in respondents:
	if resp in favorite_languages:
		print('感謝'+resp+'參與調查')
	else:
		print('請'+resp+'參與調查')

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

friend1 = {
	'first_name':'Liu',
	'last_name':'Join',
	'city':'Wuhan',
	'age':33
}

friend2= {
	'first_name':'Zhang',
	'last_name':'Tian',
	'city':'Wuhan',
	'age':28
}

friend3 = {
	'first_name':'Yang',
	'last_name':'Jian',
	'city':'Changsha',
	'age':26
}

friend4 = {
	'first_name':'Li',
	'last_name':'Yu',
	'city':'Chongqing',
	'age':26
}

friends = [friend1,friend2,friend3,friend4]
for friend in friends:
	print(friend)

6-8 寵物 :建立多個字典,對於每個字典,都使用一個寵物的名稱來給它命名;在每個字典中,包含寵物的型別及其主人的名字。將這些字典儲存在一個名為pets的列表中,再遍歷該列表,並將寵物的所有資訊都列印出來。

pets = []
peta = {
	'type':'dog',
	'owner':'Zhang',
}

petb = {
	'type':'cat',
	'owner':'Li',
}
pets.append(peta)
pets.append(petb)

for item in pets:
	for key,value in item.items():
		print('屬性:'+key+'\t值:'+value)

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

favorite_places = {
	'Sunqian':['Wuhan','Changsha','Chongqing'],
	'Zhaowu':['Xian','Guangzhou','Fujian'],
	'Wangba':['Chengdu','Hefei','Ningbo'],
}
for preson,areas in favorite_places.items():
	for area in areas:
		print(preson+'喜歡'+area+'這個城市')

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

lucky_numbers = {
	'jone':[18,25,30,88],
	'xinxin':[20,68,145,58],
	'quanquan':[88,123,42,63],
	'wenwen':[66,581,58,69,3],
	'huahua':[188,8,18,29,27],
}
for person,numbers in lucky_numbers.items():
	print(person+'喜歡的數字有:')
	for number in numbers:
		print(number)

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

cities = {
	'Wuhan':{
		'country':'China',
		'population':15686450,
		'fact':'beautiful',
	},
	'Changsha':{
		'country':'China',
		'population':1043488,
		'fact':'interesting',
	},
	'Chongqing':{
		'country':'China',
		'population':1043488,
		'fact':'passionate',
	},
}
for city,attribute in cities.items():
	print(city+'這個城市擁有如下資訊:')
	for ctype,cdata in attribute.items():
		print(ctype+':'+str(cdata))
	print('\n')

6-12 擴充套件 :本章的示例足夠複雜,可以以很多方式進行擴充套件了。請對本章的一個示例進行擴充套件:新增鍵和值、調整程式要解決的問題或改進輸出的格式。

users = {
	'aeinstein': {
		'first': 'albert',
		'last': 'einstein',
		'location': 'princeton',
	},
	'mcurie': {
		'first': 'marie',
		'last': 'curie',
		'location': 'paris',
	},
}

# 新增鍵值
users['Wayne']={
	'first': 'Cao',
	'last': 'Zhiwen',
	'location': 'Changsha',
}
# 刪除鍵值
del users['mcurie']

# 修改鍵值
users['aeinstein']={
	'first': 'Albert',
	'last': 'Einstein',
	'location': 'Princeton',
}

# 遍歷鍵值
for user,attribute in users.items():
	print(user+'的屬性如下:')
	for utype,uatt in attribute.items():
		print(utype+':'+uatt)
	print('\n')

相關文章