python编程从入门到实践(第二版)第六章 课后练习题

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

dict1 = {'first_name': 'chen',  # 姓
         'last_name': 'si yuan',  # 名
         'age': 14,  # 年龄
         'city': 'china'}  # 居住的城市
        
print('每项信息都打印出来:')  
for key, value in dict1.items():
    print(key, ':',value)  # 打印全部键值对
"""练习6-2  喜欢的数
使用一个字典来存储一些人们喜欢的数。请想出5个人的名字,
并将这些名字用作字典中的键;想出每个人喜欢的一个数,
并将这些数作为值存储在字典中。打印每个人的名字和喜欢的数。
为让这个程序更有趣,通过询问朋友确保数据是真实的。"""

dict1 = {'chen_fei': 43,
         'hui_lin': 35,
         'si_yuan': 14,
         'si_yu': 5,
         'xiao_ming':3}
         
for key, value in dict1.items():  # 遍历字典键值
    print(key,"喜欢的数字是" ':',value)  # 打印全部键值对
"""练习6-3  词汇表
Python字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。
1.想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。
2.以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,
再打印词汇的含义;也可在一行打印词汇,再使用换行符(\n)插入一个空行,然后在下一行以缩进的方式打印词汇的含义。"""
    
python_words = {'int':'不带点的数字','float':'带点的数字','str':'引号引起来的','list':'中括号扩起来的','dict':'大括号扩起来的'}
int1 = '整数'
float1 = '浮点数'
str1  = '字符串'
list1 = '列表'
dict1 = '字典'

print("\n" +int1 + "是: " + python_words['int'])
print("\n" +float1 + "是: " + python_words['float'])    
print("\n" +str1 + "是: " + python_words['str'])
print("\n" +list1 + "是: " + python_words['list'])    
print("\n" +dict1 + "是: " + python_words['dict'])
"""练习6-4  词汇表2
现在你知道了如何遍历字典,请整理你为完成练习6.3而编写的代码,
将其中的一系列print语句替换为一个遍历字典中键和值的循环
。确定该循环正确无误后,再在词汇表中添加5个Python术语。
当你再次运行这个程序时,这些新术语及其含义将自动包含在输出中。"""
    
python_words = {'int':'不带点的数字'
             ,'float':'带点的数字'
             ,'str':'引号引起来的'
             ,'list':'中括号扩起来的'
             ,'dict':'大括号扩起来的'
             ,'tuple':'小括号扩起来的'
             ,'type' :'查看数据类型'
             ,'bool':'真,假'
             ,'in':'在'
             ,'not':'不在'}
            
for key, value in python_words.items():  # 遍历字典键值
    print(key,"是" ':',value)  # 打印全部键值对
"""练习6-5  河流
河流:创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键-值对可能是'nile': 'egypt'。
1.使用循环为每条河流打印一条消息,如The Nile runs through Egypt。
2.使用循环将该字典中每条河流的名字都打印出来。
3.使用循环将该字典包含的每个国家的名字都打印出来。"""

river = {'chiana':'长江','english':'泰晤士河','usa':'密西西比河'}

# 1
for key,name in river.items():  # 取键和值
    print(f'The {key.title()} runs through {name}')  # 格式化输出

# 2
for key in river.values():  # 取值
    print(key)  # 打印

# 3    
for key in river.keys():  # 取键
    print(key.title())  # 打印每一个键,并首字母大写
"""练习6-6  调查
1.创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。
2.遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。"""

# 原始名单
names = {'小红':16,'大王':34,"小王":20,'小牛':18,'小白':19}

# 1.应该会接受调查的人员名单
examine_name = {'小黑':17,'小红':21,'小路':13,'大王':48,'老牛':57}

# 2.遍历人员名单
for key in examine_name:  # 遍历应该会接受调查字典
    if key in names.keys():  # 如果应该会接受调查在原始名单字典里面
        print(f'谢谢参与{key}')  # 打印 谢谢参与
    else:  # 反之如果不在
        print(f'请你参与调查:{key}')   # 打印 请你参加
"""练习6-7  人
在为完成练习6.1而编写的程序中,再创建两个表示人的字典,
然后将这三个字典都存储在一个名为people的列表中。
遍历这个列表,将其中每个人的所有信息都打印出来。"""

people = []  # 定义存储字典的列表

# 字典1
dict1 = {'first_name':'chen',
         'last_name':'si yuan',
         'age':14,
         'city':'china'}
people.append(dict1)  # 将字典添加的列表

# 字典2
dict2 = {'first_name':'chen',
         'last_name':'si yu',
         'age':5,
         'city':'china'}
people.append(dict2)  # 将字典添加的列表

# 字典3
dict3 = {'first_name':'chen',
         'last_name':'fei',
         'age':44,
         'city':'china'}
people.append(dict3)  # 将字典添加的列表 

print(people)  # 打印列表

for person in people:  # 遍历这个列表,将其中每个人的所有信息都打印出来
    name = person['first_name'].title() + " " + person['last_name'].title()
    age = str(person['age'])
    city = person['city'].title()
    
    print(name + ", of " + city + ", is " + age + " years old.")
"""练习6-8  宠物
创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;
在每个字典中,包含宠物的类型及其主人的名字。
将这些字典存储在一个名为pets的列表中,再遍历该列表,并将有关每个宠物的所有信息都打印出来。"""

pets = []  # 创建一个用于存储宠物的空列表。

# 宠物1
pet = {  # 定义字典储存宠物物信息
    '宠物': '狗',
    '名字': '旺财',
    '主人': '思远',
    '年龄': 8,
    '体重': '20kg',}
pets.append(pet)  # 把字典添加的列表储存

# 宠物2
pet = {  # 定义字典储存宠物信息
    '宠物': '猫',
    '名字': '汤姆',
    '主人': '思妤',
    '年龄': 3,
    '体重': '5kg',}
pets.append(pet)  # 把字典添加的列表储存

# 打印宠物的所有信息
for pet in pets:  # 遍历列表
    print(f"\n宠物{pet['名字']}所有信息:")  # 打印所以信息
    for key, value in pet.items():  # 嵌套取值的键值对
        print(f"\t{key}: {value}")  # 打印出取值的键值对并首行缩进
"""练习6-9  喜欢的地方
创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;
对于其中的每个人,都存储他喜欢的1-3个地方。为让这个练习更有趣些,
让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。。"""

favorite_places = { '思远': ['印度', '德国', '俄罗斯'],
                    '思妤': ['美国', '英国'],
                    '慧林': ['新加坡', '泰国', '瑞士']}

for name, places in favorite_places.items():  # 遍历键和值
    print(f"\n{name} 喜欢以下地方:")  # 打印
    for place in places:  # 嵌套临时变量在值里面循环取值
        print(f"- {place}")  # 打印值
"""练习6-10  喜欢的数
修改为完成练习6-2而编写的程序,
让每个人都可以有多个喜欢的数,然后将每个人的名字及其喜欢的数打印出来。"""
    
dict1 = {'chen_fei': [43,18,8],
         'hui_lin': [35,18,22,28],
         'si_yuan': [14,3,6,10],
         'si_yu': [5,2,3,4],
         'xiao_ming':[3,6]}
        
for key, value in dict1.items():  # 遍历字典键值
    print(f"\n{key}喜欢的数字是:" )  # 打印
    for a in value:  # 嵌套临时变量在值里面循环取值
        print(f"- {a}")  # 打印值    
"""练习6-11  城市
创建一个名为cities的字典,在其中将三个城市名用作键;
对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、人口约数以及一个有关该城市的事实。
在表示每座城市的字典中,应包含country、population和fact等键。将每座城市的名字以及有关它们的信息都打印出来。"""

# 字典套字典    
cities = {'北京': {  '国家': 'china','人口': 25000000,'地标': '天安门',},
            '纽约': {'国家': 'usa','人口': 8000000,'地标': '自由女神',},
            '伦敦': {  '国家': 'english','人口': 9000000,'地标': '伦敦桥',}}

for city, city_info in cities.items():  # 遍历字典键和值
    country = city_info['国家']  # 把值里面的国家这个键赋值给country
    population = city_info['人口']  # 把值里面的人口这个键赋值给population
    fact = city_info['地标']  # 把值里面的地标这个键赋值给fact

    print(f'\n{city} 在 {country.title()}')  # 打印键和嵌套字典的值
    print(f'有 {population} 人')  # 打印键和嵌套字典的值
    print(f'{fact} 是标志建筑')  # 打印键和嵌套字典的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值