天天看点

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 扩展 :本章的示例足够复杂,可以以很多方式进行扩展了。请对本章的一个示例进行扩展:添加键和值、调整程序要解决的问题或改进输出的格式。 等待后续的实战再来改进吧,昨天出差,跑了一天确实没精力学了。补上补上,希望继续坚持。