天天看点

【《Python编程: 从入门到实践》习题答案--第六章:<字典>】

# 6-1 人 : 使用一个字典来存储一个熟人的信息, 包括名、 姓、 年龄和居住的城市。 
# 该字典应包含键first_name 、 last_name 、 age 和city 。 将存储在该字典中的每项信息都打印出来。
mayun = {'first_name':'Ma','last_name':'Yun','age':'54','city':'HangZhou'}
for key,value in mayun.items():
	print('key:' + key)
	print('value:' + value)


# 6-2 喜欢的数字 : 使用一个字典来存储一些人喜欢的数字。 请想出5个人的名字, 
# 并将这些名字用作字典中的键; 想出每个人喜欢的一个数字, 并将这些数字作为值存
# 储在字典中。 打印每个人的名字和喜欢的数字。 为让这个程序更有趣, 通过询问朋友确保数据是真实的。
dics = {'jack':'1','john':'2','kaiven':'3','popo':'4','lili':'5'}
for k,v in dics.items():
	print(k + '最喜欢的数字是: ' + v)


# 6-3 词汇表 : Python字典可用于模拟现实生活中的字典, 但为避免混淆, 我们将后者称为词汇表。
# 想出你在前面学过的5个编程词汇, 将它们用作词汇表中的键, 并将它们的含义作为值存储在词汇表中。
# 以整洁的方式打印每个词汇及其含义。 为此, 你可以先打印词汇, 在它后面加上一个冒号, 再打印词汇的含义; 
# 也可在一行打印词汇, 再使用换行符(\n ) 插入一个空行, 然后在下一行以缩进的方式打印词汇的含义。
#我真是良心up主啊,看到了6-4,,又把6-3复杂的写了一遍………………
dics = {'list':'列表','var':'变量','int':'整型','boolean':'布尔','str':'字符串'}
print('dics[\'list\']'+':' + dics['list'])
print('dics[\'var\']'+':' + dics['var'])
print('dics[\'int\']'+':' + dics['int'])
print('dics[\'boolean\']'+':' + dics['boolean'])
print('dics[\'str\']'+':' + dics['str'])
	
	
# 6-4 词汇表2 : 既然你知道了如何遍历字典, 现在请整理你为完成练习6-3而编写的代码, 
# 将其中的一系列print 语句替换为一个遍历字典中的键和值的循环。 确定该循环正确无误后, 
# 再在词汇表中添加5个Python术语。 当你再次运行这个程序时, 这些新术语及其含义将自动包含在输出中。
dics = {'list':'列表','var':'变量','int':'整型','boolean':'布尔','str':'字符串'}
for k,v in dics.items():
	print(k + ':' + v + '\n')

	
# 6-5 河流 : 创建一个字典, 在其中存储三条大河流及其流经的国家。 其中一个键—值对可能是'nile': 'egypt' 。
# 使用循环为每条河流打印一条消息, 如“The Nile runs through Egypt.”。
# 使用循环将该字典中每条河流的名字都打印出来。
# 使用循环将该字典包含的每个国家的名字都打印出来。
rivers = {'nile':'egypt','huanghe':'china','changjiang':'china'}
for k , v in rivers.items():
	print('The ' + k + ' runs through ' + v + ' .')
for k in rivers.keys():
	print(k)
for v in rivers.values():
	print(v)


# 6-6 调查 : 在6.3.1节编写的程序favorite_languages.py中执行以下操作。
# 创建一个应该会接受调查的人员名单, 其中有些人已包含在字典中, 而其他人未包含在字典中。
# 遍历这个人员名单, 对于已参与调查的人, 打印一条消息表示感谢。 对于还未参与调查的人, 打印一条消息邀请他参与调查。
favorite_languages = {
	'amada':'C',
	'jacky':'java',
	'frank':'c++',
	'polly':'php',
	'maily':'.net'
	}
lists = ['amada','jacky','mayun','admin']
temp = []
for k in favorite_languages.keys():
	temp.append(k)
print(temp)
for s in lists:
	if s in temp:
		print('1')
	else:
		print ('2')
		
# 6-7 人 : 在为完成练习6-1而编写的程序中, 再创建两个表示人的字典, 然后将这三个字典都存储在一个名为people 的列表中。 
# 遍历这个列表, 将其中每个人的所有信息都打印出来。
mayun0 = {'first_name':'Ma0','last_name':'Yun0','age':'540','city':'HangZhou0'}
mayun1 = {'first_name':'Ma1','last_name':'Yun1','age':'541','city':'HangZhou1'}
mayun2 = {'first_name':'Ma2','last_name':'Yun','age':'542','city':'HangZhou2'}
people = [mayun0,mayun1,mayun2]
# print(people)
for i in people[:]:
	print(i)




# 6-8 宠物 : 创建多个字典, 对于每个字典, 都使用一个宠物的名称来给它命名; 在每个字典中, 包含宠物的类型及其主人的名字。 
# 将这些字典存储在一个名为pets的列表中, 再遍历该列表, 并将宠物的所有信息都打印出来。
dog ={'name':'dog1','age':'3'}
cat ={'name':'cat1','age':'4'}
bird ={'name':'bird1','age':'1'}
pets = [dog,cat,bird]
for p in pets:
	print(p)

# 6-9 喜欢的地方 : 创建一个名为favorite_places 的字典。 在这个字典中, 将三个人的名字用作键; 对于其中的每个人, 
# 都存储他喜欢的1~3个地方。 为让这个练习更有趣些, 可让一些朋友指出他们喜欢的几个地方。 遍历这个字典, 
# 并将其中每个人的名字及其喜欢的地方打印出来。
favorite_places = {'jack':'beijing','paul':'shanghai','lili':'hangzhou'}
for fp in favorite_places.items():
	print(fp)


# 6-10 喜欢的数字 : 修改为完成练习6-2而编写的程序, 让每个人都可以有多个喜欢的数字, 然后将每个人的名字及其喜欢的数字打印出来。
dics = {'jack':['1','2'],'john':['3','4']}
for k,v in dics.items():
	print(k + '最喜欢的数字是: ' )
	for v1 in v:
		print(v1)



# 6-11 城市 : 创建一个名为cities 的字典, 其中将三个城市名用作键; 对于每座城市, 都创建一个字典, 
# 并在其中包含该城市所属的国家、 人口约数以及一个有关该城市的事实。 在表示每座城市的字典中, 
# 应包含country 、 population 和fact 等键。 将每座城市的名字以及有关它们的信息都打印出来。
cities = {'beijing':{'country':'china','population':'100','fact':'超级堵'},'guangzhou':{'country':'china','population':'300','fact':'超级堵2'},'shanghai':{'country':'china','population':'200','fact':'超级堵1'}}
for k,v in cities.items():
	print('城市:'+k+ '的信息: ')
	for k1,v1 in v.items():
		print(k1,v1)


# 6-12 扩展 : 本章的示例足够复杂, 可以以很多方式进行扩展了。 请对本章的一个示例进行扩展: 添加键和值、 调
# 整程序要解决的问题或改进输出的格式
	
# 略………………