《Python从入门到实践》第六章动手试一试
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')
用双手托起成功的路

浙公网安备 33010602011771号