6-1 人:
使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。
该字典应包含键first_name 、last_name 、age 和city 。
将存储在该字典中的每项信息都打印出来。
data = {
'first_name':'一',
'last_name':'林',
'age':"29",
'city':'london',
}
print("姓:"+data['last_name']+",名:"+data['first_name']+"。年龄:"+data['age']+",城市:"+data['city'].title())
6-2 喜欢的数字:
使用一个字典来存储一些人喜欢的数字。
请想出5个人的名字,并将这些名字用作字典中的键;
想出每个人喜欢的一个数字,并将这些数字作为值存储在字典中。
打印每个人的名字和喜欢的数字。
为让这个程序更有趣,通过询问朋友确保数据是真实的。
numbers = {
'A':1,
'B':2,
'C':3,
'D':4,
'E':5,
}
for name,key in numbers.items():
print("我的朋友:"+name+" 最喜欢的数字是:"+str(key)+"。")
输出结果:
我的朋友:A 最喜欢的数字是:1。
我的朋友:B 最喜欢的数字是:2。
我的朋友:C 最喜欢的数字是:3。
我的朋友:D 最喜欢的数字是:4。
我的朋友:E 最喜欢的数字是:5。
6-3 词汇表:
Python字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。
- 想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。
- 以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,再打印词汇的含义;也可在一行打印词汇,再使用换行符(\n )插入一个空行,然后在下一行以缩进的方式打印词汇的含义。
glossary = {
'string': 'A series of characters.',
'comment': 'A note in a program that the Python interpreter ignores.',
'list': 'A collection of items in a particular order.',
}
word='string' #直接赋值
print("\n"+word.title()+"的含义为:"+glossary[word])
word='comment'
print("\n"+word.title()+"的含义为:"+glossary[word])
6-4 词汇表2:
既然你知道了如何遍历字典,现在请整理你为完成练习6-3而编写的代码,将其中的一系列print 语句替换为一个遍历字典中的键和值的循环。
确定该循环正确无误后,再在词汇表中添加5个Python术语。
当你再次运行这个程序时,这些新术语及其含义将自动包含在输出中。
glossary = {
'string': 'A series of characters.',
'comment': 'A note in a program that the Python interpreter ignores.',
'list': 'A collection of items in a particular order.',
}
for key,value in glossary.items():
print(key.title()+"的含义为:"+value)
6-5 河流:
创建一个字典,在其中存储三条大河流及其流经的国家。
其中一个键—值对可能是’nile’: ‘egypt’ 。
- 使用循环为每条河流打印一条消息,如“The Nileruns through Egypt.”。
- 使用循环将该字典中每条河流的名字都打印出来。
- 使用循环将该字典包含的每个国家的名字都打印出来。
geography = {
'nile':'egypt',
"amazon river":'brazil',
'yangtze':'china',
}
for river,country in geography.items():
print("The "+river.title()+"runs through "+country.title())
for river in geography.keys():
print("河流名称为:"+river.title())
for country in geography.values():
print("途径的国家有:"+country.title())
输出结果:
The Nileruns through Egypt
The Amazon Riverruns through Brazil
The Yangtzeruns through China
河流名称为:Nile
河流名称为:Amazon River
河流名称为:Yangtze
途径的国家有:Egypt
途径的国家有:Brazil
途径的国家有:China
6-6 调查:
在6.3.1节编写的程序favorite_languages.py中执行以下操作。
- 创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。
- 遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
members = ['jen','sarah','bob','mary']
for member in members:
if member in favorite_languages.keys():
print("Dear "+member.title()+", thanks for coming!")
else:
print("Dear "+member.title()+",what's your favorite programming language?")
输出结果:
Dear Jen, thanks for coming!
Dear Sarah, thanks for coming!
Dear Bob,what's your favorite programming language?
Dear Mary,what's your favorite programming language?
6-7 人:
在为完成练习6-1而编写的程序中,再创建两个表示人的字典,然后将这三个字典都存储在一个名为people 的列表中。
遍历这个列表,将其中每个人的所有信息都打印出来。
data = {
'first_name':'一',
'last_name':'林',
'age':29,
'city':'london',
}
data1 = {
'first_name':'二',
'last_name':'张',
'age':78,
'city':'shanghai',
}
data2 = {
'first_name':'三',
'last_name':'王',
'age':14,
'city':'beijing',
}
people = [data,data1,data2]
for information in people:
print("姓名为:"+information['last_name']+information['first_name']+" "+
"年龄为:"+str(information['age'])+" "+
"城市为:"+information['city'].title())
输出结果为:
姓名为:林一 年龄为:29 城市为:London
姓名为:张二 年龄为:78 城市为:Shanghai
姓名为:王三 年龄为:14 城市为:Beijing
6-8 宠物:
创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;
在每个字典中,包含宠物的类型及其主人的名字。
将这些字典存储在一个名为pets 的列表中,再遍历该列表,并将宠物的所有信息都打印出来。
mimi = {
'name':'mimi',#不知道怎么输出字典名称,就在字典里先加一条name
'species':'cat',
'master':'mary',
}
kitty = {
'name':'kitty',
'species':'dog',
'master':'bob',
}
pets =[mimi,kitty]
for pet in pets:
print("宠物名称:"+pet['name'].title()+"\n 种类:"+pet['species']+" 主人姓名:"+pet['master'].title())
输出结果:
宠物名称:Mimi
种类:cat 主人姓名:Mary
宠物名称:Kitty
种类:dog 主人姓名:Bob
6-9 喜欢的地方:
创建一个名为favorite_places 的字典。
在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1~3个地方。
为让这个练习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。
在这里插入代码片
6-10 喜欢的数字:
修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来。
favorite_numbers = {
'bob':['1','2'],
'kay':['3','5','5'],
'willam':["12"],
}
for names,numbers in favorite_numbers.items():
if len(numbers) == 1:
print("我的朋友:"+names.title()+" 最喜欢的数字是:"+str(*numbers)) #numbers是一个列表类型,需要转换成字符串
#把12的方括号去掉即在参数前添加*,如果不加*,输出为["12"],带方括号
else:
print("我的朋友:"+names.title()+" 喜欢的数字有:")
for number in numbers:
print('\t'+number)
输出结果:
我的朋友:Bob 喜欢的数字有:
1
2
我的朋友:Kay 喜欢的数字有:
3
5
5
我的朋友:Willam 最喜欢的数字是:12
6-11 城市:
创建一个名为cities 的字典,其中将三个城市名用作键;
对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。
在表示每座城市的字典中,应包含country 、population 和fact 等键。将每座城市的名字以及有关它们的信息都打印出来。
同上