【学习笔记】python编程:从入门到实践(第六章 字典)课后练习

目录

6.2使用字典

6-1 人

 6-2 喜欢的数字

 6-3 词汇表

6.3遍历字典

6-4 词汇表2

 6-5 河流

6-6 调查

6.4嵌套 

6-7 人

6-8 宠物

6-9 喜欢的地方

6-10 喜欢的数字

6-11 城市

6-12 扩展


6.2使用字典

6-1 人

使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。该字典应包含键first_name 、last_name 、age 和city 。将存储在该字典中 的每项信息都打印出来。

human = {"first_name": "zong", "last_name": "wang", "age": 20, "city": "ShangHai"}
print("your first nmae is:" + human["first_name"].title())
print("your last nmae is:" + human["last_name"].title())
print("your age is:" + human["age"])
print("your city is:" + human["city"])

运行结果:

6-2 喜欢的数字

使用一个字典来存储一些人喜欢的数字。请想出5个人的名字,并将这些名字用作字典中的键;想出每个人喜欢的一个数字,并将这些数字作为值存 储在字典中。打印每个人的名字和喜欢的数字。为让这个程序更有趣,通过询问朋友确保数据是真实的。

friends_favourite_number = {
    "hong": 20,
    "lan": 10,
    "bai": 9,
    "zi": 7,
    "wang": 37892,
}
print("hong's favourite number is ", friends_favourite_number["hong"])
print("lan's favourite number is ", friends_favourite_number["lan"])
print("bai's favourite number is", friends_favourite_number["bai"])
print("zi's favourite number is", friends_favourite_number["zi"])
print("wang's favourite number is", friends_favourite_number["wang"])

运行结果:

6-3 词汇表

Python字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。 想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。
以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,再打印词汇的含义;也可在一行打印词汇,再使用换行符(\n )插 入一个空行,然后在下一行以缩进的方式打印词汇的含义。

dictionary = {
    "sort()":"排序一个列表",
    "str()":"强制类型转换为字符串",
    "del()":"删除列表中的一个元素",
    "range()":"生成一系列数字",
    "sorted()":"对列表零时排序",
}
print("sort\n\t"+dictionary["sort()"]+"\n"
      +"str\n\t"+dictionary["str()"]+"\n"
      +"del\n\t"+dictionary["del()"]+"\n"
      +"range\n\t"+dictionary["range()"]+"\n"
      +"sorted\n\t"+dictionary["sorted()"])

运行结果:

 

6.3遍历字典

6-4 词汇表2

既然你知道了如何遍历字典,现在请整理你为完成练习6-3而编写的代码,将其中的一系列print 语句替换为一个遍历字典中的键和值的循环。

dictionary = {
    "sort()": "排序一个列表",
    "str()": "强制类型转换为字符串",
    "del()": "删除列表中的一个元素",
    "range()": "生成一系列数字",
    "sorted()": "对列表零时排序",
}
for key, value in dictionary.items():
    print(key + "\n\t" + value)

运行结果:

6-5 河流

创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键—值对可能是'nile': 'egypt' 。 使用循环为每条河流打印一条消息,如“The Nile runs through Egypt.”。 使用循环将该字典中每条河流的名字都打印出来。
使用循环将该字典包含的每个国家的名字都打印出来。

river = {"nile": "egypt", "yellow river": "china", "yangtze river": "china"}
for key, value in river.items():
    print("The " + key.title() + " runs throuth " + value.title() + ".")
for key in river:
    print(key, end=",")
print()
for value in set(river.values()):
    print(value, end=",")

 运行结果:

6-6 调查

在6.3.1节编写的程序favorite_languages.py中执行以下操作。 创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。 遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。

favourite_languages = {
    "jen": "python",
    "sarah": "c",
    "edward": "ruby",
    "phil": "python",
}
survey_list = ["wang", "jen", "zhang", "phil", "alex"]
surveyed_list = []
for key in favourite_languages.keys():
    surveyed_list.append(key)
for name in survey_list:
    if name in surveyed_list:
        print(name.title() + ",thank you")
    else:
        print(name.title() + ",please cooperate with the investigation")

 运行结果:

6.4嵌套 

6-7 人

在为完成练习6-1而编写的程序中,再创建两个表示人的字典,然后将这三个字典都存储在一个名为people 的列表中。遍历这个列表,将其中每个人的所有信息都打印出来。

human1 = {"first_name": "zong", "last_name": "wang", "age": 20, "city": "ShangHai"}
human2 = {"first_name": "zong", "last_name": "shen", "age": 23, "city": "BeiJing"}
human3 = {"first_name": "alex", "last_name": "lang", "age": 19, "city": "ChenDu"}
people = [human1, human2, human3]
for human in people:
    print("your first nmae is:" + human["first_name"].title())
    print("your last nmae is:" + human["last_name"].title())
    print("your age is:" + str(human["age"]))
    print("your city is:" + human["city"])
    print("-----------------------------------------------")

运行结果:

6-8 宠物

创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;在每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为pets 的列表中,再遍历该列表,并将宠物的所有信息都打印出来。

pet1 = {"master": "alice", "name": "cookie", "type": "cat", "color": "yellow"}
pet2 = {"master": "mark", "name": "jelly", "type": "dog", "color": "white"}
pet3 = {"master": "rose", "name": "juice", "type": "bird", "color": "black"}
pets = [pet1, pet2, pet3]
for pet in pets:
    print("master:" + pet["master"] + ",name:" + pet["name"] + ",type:" + pet["type"] + ",color:" + pet["color"])

运行结果:

6-9 喜欢的地方

创建一个名为favorite_places 的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1~3个地方。为让这个练 习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。

favorite_place = {
    "jason": ["ShangHai", "GuangZhou"],
    "alex": ["GuangZhou", "ChenDu"],
    "long": ["ChongQin", "ChenDu", "ShangHai"]
}
for name, place in favorite_place.items():
    print("\n" + name.title() + "'s favourite country :")
    for country in place:
        print("\t" + country)

 运行结果:

6-10 喜欢的数字

修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来

friends_favourite_number = {
    "hong": [30],
    "lan": [7, 10, 8],
    "bai": [2, 3, 5, 7, 11, 133, 17],
    "zi": [3, 7],
    "wang": [37892, 29831],
}
for name, number in friends_favourite_number.items():
    print("\n" + name.title() + ":")
    for number in number:
        print("\t" + str(number))

运行结果:

6-11 城市

创建一个名为cities 的字典,其中将三个城市名用作键;对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该
城市的事实。在表示每座城市的字典中,应包含country 、population 和fact 等键。将每座城市的名字以及有关它们的信息都打印出来。 

cities = {
    "ShangHai": {
        "country": "china",
        "population": "24.75 million",
        "fact": "big city",
    },
    "Tokyo": {
        "country": "japan",
        "population": "14.04 million",
        "fact": "land of cherry blossoms",
    },
    "paris": {
        "country": "franch",
        "population": "10.20 million",
        "fact": "city of romantic",
    }
}
for city_name, value in cities.items():
    print("\n" + city_name.title() + ":")
    for key, value in value.items():
        print("\t" + key + ":" + value)

运行结果:

6-12 扩展

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

改写6.4.2 favorite_languages.py(要求见60页)

favorite_languages = {
    "jen": ["python", "ruby"],
    "sarah": ["c"],
    "edward": ["ruby", "go"],
    "phil": ["python", "haskell"],
}
for name, languages in favorite_languages.items():
    if len(languages) == 1:
        print("\n" + name.title() + "'s favorite languages is:")
        print(languages[0].title())
    else:
        print("\n" + name.title() + "'s favorite languages are:")
        for language in languages:
            print(language.title())

运行结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值