Python编程:从入门到实践 课后习题-第六章 字典

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 等键。将每座城市的名字以及有关它们的信息都打印出来。

同上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值