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


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

information = {"first_name":"A", "last_name":"B", "age":20, "city":"China"}
print(information)

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

favorite_numbers = {'A':1, 'B':2, 'C':3, 'D':4, 'E':5}
print(favorite_numbers)
print("A喜歡的數字是" + str(favorite_numbers['A']) + ".")

6-3 詞匯表 :Python字典可用於模擬現實生活中的字典,但為避免混淆,我們將后者稱為詞匯表。

  • 想出你在前面學過的5個編程詞匯,將它們用作詞匯表中的鍵,並將它們的含義作為值存儲在詞匯表中。
  • 以整潔的方式打印每個詞匯及其含義。為此,你可以先打印詞匯,在它后面加上一個冒號,再打印詞匯的含義;也可在一行打印詞匯,再使用換行符(\n )插入一個空行,然后在下一行以縮進的方式打印詞匯的含義。
func = {"input":"提示用戶輸入內容", "print":"打印輸出內容", "del":"刪除指定內容", "def":"可以創建函數", "range":"創建指定的數列"}
for i in func:
	print(i + "的含義是: " + str(func[i]) + "\n")

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

func = {"input":"提示用戶輸入內容", "print":"打印輸出內容", "del":"刪除指定內容", "def":"可以創建函數", "range":"創建指定的數列"}
for key,value in func.items():
	print(key + " 鍵")
	print(value + " 值")

func["key"] = "字典的鍵"
func["value"] = "字典的值"
func["append"] = "添加元素到列表末尾"
func["pop"] = "刪除元素並提取使用"
func["copy"] = "復制變量"
for key,value in func.items():
	print(key + " 鍵")
	print(value + " 值")

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

  • 使用循環為每條河流打印一條消息,如“The Nile runs through Egypt.”。
  • 使用循環將該字典中每條河流的名字都打印出來。
  • 使用循環將該字典包含的每個國家的名字都打印出來。
rivers = {'nile': 'egypt',
		'huanghe':'china',
		'changjiang':'zhongguo'}
for key, value in rivers.items():
	print("The " + key + " runs through " + value + ".")
#河流循環
for river in rivers.keys():
	print(river)
#國家循環
for country in rivers.values():
	print(country)

6-6 調查 :在6.3.1節編寫的程序favorite_languages.py中執行以下操作。

  • 創建一個應該會接受調查的人員名單,其中有些人已包含在字典中,而其他人未包含在字典中。
  • 遍歷這個人員名單,對於已參與調查的人,打印一條消息表示感謝。對於還未參與調查的人,打印一條消息邀請他參與調查。
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
    '李':'四',
    }
new_person = ['趙','錢','孫','李']
for k in favorite_languages:
	if k in new_person:
		print("非常感謝" + k + "參加問卷調查.\n")
	else:
		print("請" + k + "參加問卷調查.\n")

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

information_1 = {"first_name":"A", "lost_name":"B", "age":20, "city":"china"}
information_2= {"first_name":"C", "lost_name":"D", "age":20, "city":"china"}
information_3= {"first_name":"E", "lost_name":"F", "age":20, "city":"china"}
people = [information_1, information_2, information_3]
for i in people:
	print(i)

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

pets = {
	"A":{
	"name":"aa", 
	"per_name":"dog",
	"pet_age":"1",  
		}, 

	"B":{
	"name":"bb", 
	"per_name":"cat",
	"pet_age":"2",  
		}, 
	}
for k,v in pets.items():
	print(k)
	print(v)

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

favorite_places = {
    '甲':{'一'},
    '乙':{'二','三','四'},
    '丙':{'五','六','七'}
    }
for ks, vs in favorite_places.items():
	if len(vs) == 1:
		for v in vs:
			print(ks + "喜歡的數字只有一個 " + v)
	else:
		print("\n" + ks + "喜歡的數字有:")
		for v in vs:
			if v != 1:
				print("\t" + v)

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

favorite_number = {
    'A':{'1','2','3'},
    'B':{'4','5','6'},
    'C':{'7','8','9'}
    }
for ks, vs in favorite_number.items():
	print(ks.title() + "喜歡的數字是")
	for v in vs:
		print(':' + v)

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

cities = {
		'A':{'country':'aa', 'population ':'bb', 'fact':'cc'}, 
		'B':{'country':'aa', 'population ':'bb', 'fact':'cc'}, 
		'C':{'country':'aa', 'population ':'bb', 'fact':'cc'},
		}
for k, v in cities.items():
	print(k, v)

for k, v in cities.items():
	print(k)
	print(v)

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM