《Python编程:从入门到实践》—-课后习题笔记(2-6章)

117次阅读
没有评论

秉承着input+output=knowledge的精神,在此记录《Python编程:从入门到实践》课后习题的笔记。

《Python编程:从入门到实践》----课后习题笔记(2-6章)

第2章 变量和简单数据类型

2-1 简单消息:将一条消息存储到变量中,再将其打印出来。

message = 'hello python world!'
print(message)

2-2 多条简单消息:将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来。

message = 'hello python world!'
print(message)
message = 'happy everyday'
print(message)

2-3 个性化消息:将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。

name = 'Eric'
print('Hello Eric, would you like to learn some Python today?')

2-4 调整名字的大小写:将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名。

name = 'jacob'
print(name.lower()+'\n'+
      name.upper()+'\n'+
      name.title())

2-5 名言:找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。

print('Albert  Einstein  once  said,"A  person  who  never  made  a  mistake  never  tried  anything new."')

2-6 名言2:重复练习2-5,但将名人的姓名存储在变量famous_person中,再创建要显示消息,并将其存储在变量message中,然后打印这条消息。

famous_person = 'Albert Einstein'
message = '“person who never made a mistake never tried anything new.”' # 特别注意中文双引号处
print(famous_person + 'once said,' + message)

2-7 剔除人名中的空白:存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合”\t”和”\n”各一次。

打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数lstrip()、rstrip()和strip()对人名进行处理,并将结果打印出来。

name = '   jacob        '
print('\t' + name.lstrip() + '\n' +
      '\t' + name.rstrip() + '\n' +
      '\t' + name.strip()  + '\n') 

2-8 数字8:编写4个表达式,它们分别使用加法、减法、乘法和除法运算,但结果都是数字8。

print(5 + 3)
print(9 - 1)
print(2 * 4)
print(8 / 1)

2-9 最喜欢的数字:将你最喜欢的数字存储在一个变量中,再使用这个变量创建一条消息,指出你最喜欢的数字,然后将这条消息打印出来。

number = 7
print('My favorite number is:' + str(number))

2-10 添加注释:选择你编写的两个程序,在每个程序中都至少添加一条注释。

import pandas as pd # 导入模块

2-11 Python之禅:在Python终端会话中执行命令import this,并粗略地浏览一下其他的指导原则。

import this

第3章 列表简介

3-1 姓名:将一些朋友的姓名存储在一个列表中,并将其命名为names。依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来。

names = ['jacob','david','john']
for name in names:
    print(name.title())

3-2 问候语:继续使用练习3-1中的列表,但不打印每个朋友的姓名,而为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。

names = ['jacob','david','john']
for name in names:
    print(name.title() + ',Happy Chrismas!')

3-3 自己的列表:想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like to own a Honda motorcycle”。

vehicles = ['bike','car','motorcycle']
for vehicle in vehicles:
    print('I would like to own a ' + vehicle.title() + '.')

3-4 嘉宾名单:如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),你会邀请哪些人?请创建一个列表,其中包含至少3个你想邀请的人;然后,使用这个列表打印消息来邀请这些人来与你共进晚餐。

names = ['jacob','david','john']
for name in names:
    print('Dear ' + name.title() + ',i would like to invite you to have dinner with me.')

3-5 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。

①以完成练习3-4 时编写的程序为基础,在程序末尾添加一条print 语句,指出哪位嘉宾无法赴约。

②修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。

③再次打印一系列消息,向名单中的每位嘉宾发出邀请。

names = ['jacob','david','john']
for name in names:
    if name == 'john':
        print('I am sorry that ' + name.title() + " can't have dinner with me")
    else:    
        print('Dear ' + name.title() + ',i would like to invite you to have dinner with me.')
        
names[2] = 'jack'

for name in names:
    print('Dear ' + name.title() + ',i would like to invite you to have dinner with me.')

3-6 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。

①以完成练习3-4 或练习3-5 时编写的程序为基础,在程序末尾添加一条print 语句,指出你找到了一个更大的餐桌。

②使用insert()将一位新嘉宾添加到名单开头。

③使用insert()将另一位新嘉宾添加到名单中间。

④使用append()将最后一位新嘉宾添加到名单末尾。

⑤打印一系列消息,向名单中的每位嘉宾发出邀请。

names.insert(0,'jessy')
names.insert(2,'chris')
names.append('lucy')
for name in names:
    print('Dear ' + name.title() + ',i would like to invite you to have dinner with me.')

3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。

①以完成练习3-6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。

②使用pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐。

③对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。

④使用del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的。

for name in names:
    print('Dear ' + name.title() + ',i am truly sorry that i can only invite two people.')

while len(names) > 2:
    pop_name = names.pop()
    print('Dear ' + pop_name.title() + ',i am truly sorry that i cannot invite you')

for name2 in names.copy():
    print('Dear ' + name2.title() + ',you are still at the invited list')

del names[:2]
print(names)

3-8 放眼世界:想出至少5个你渴望去旅游的地方。

①将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。

②按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python 列表。

③使用sorted()按字母顺序打印这个列表,同时不要修改它。

④再次打印该列表,核实排列顺序未变。

⑤使用sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。

⑥再次打印该列表,核实排列顺序未变。

⑦使用reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。

⑧使用reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。

⑨使用sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。

⑩使用sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。

places = ['iceland','spain','canda','germany','france']

print(places)

print(sorted(places))

print(places)

print(sorted(places,reverse = True))

print(places)

places.reverse()
print(places)

places.reverse()
print(places)

places.sort()
print(places)

places.sort(reverse = True)
print(places)

3-9 晚餐嘉宾:在完成练习3-4~练习3-7 时编写的程序之一中,使用len()打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。

len(names)

3-10 尝试使用各个函数:想想可存储到列表中的东西,如山岳、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。

# 略

3-11 有意引发错误:如果你还没有在程序中遇到过索引错误,就尝试引发一个这种错误。在你的一个程序中,修改其中的索引,以引发索引错误。关闭程序前,务必消除这个错误。

places = ['iceland']
print(places[1])

第四章 操作列表

4-1 比萨:想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for循环将每种比萨的名称都打印出来

①修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅是比萨的名称。对于每种比萨,都显示一行输出,如“I like pepperoni pizza”。

②在程序末尾添加一行代码,它不在for 循环中,指出你有多喜欢比萨。输出应包含针对每种比萨的消息,还有一个总结性句子,如“I really love pizza!”。

pizzas = ['aaa','bbb','ccc']
for pizza in pizzas:
    print('I like ' + pizza + ' pizza!')
print('I really love pizza!')

4-2 动物:想出至少三种有共同特征的动物,将这些动物的名称存储在一个列表中,再使用for 循环将每种动物的名称都打印出来。

①修改这个程序,使其针对每种动物都打印一个句子,如“A dog would make a great pet”。

②在程序末尾添加一行代码,指出这些动物的共同之处,如打印诸如“Any of these animals would make a great pet!”这样的句子。

pets = ['cat','dog','pig']
for pet in pets:
    print('A ' + pet + ' would make a great pet.')

4-3 数到20:使用一个for 循环打印数字1~20(含)。

for i in range(1,21):
    print(i)

4-4 一百万:创建一个列表,其中包含数字1~1 000 000,再使用一个for 循环将这些数字打印出来(如果输出的时间太长,按Ctrl + C 停止输出,或关闭输出窗口)。

number = list(range(1,1000001))
print(number)

4-5 计算1~1 000 000 的总和:创建一个列表,其中包含数字1~1 000 000,再使用min()和max()核实该列表确实是从1 开始,到1 000 000 结束的。另外,对这个列表调用函数sum(),看看Python 将一百万个数字相加需要多长时间。

print(min(number))
print(max(number))
print(sum(number))

4-6 奇数:通过给函数range()指定第三个参数来创建一个列表,其中包含1~20 的奇数;再使用一个for 循环将这些数字都打印出来。

odds = list(range(1,21,2))
for odd in odds:
    print(odd)

4-7 3的倍数:创建一个列表,其中包含3~30 内能被3 整除的数字;再使用一个for循环将这个列表中的数字都打印出来。

numbers = list(range(3,31,3))
for number in numbers:
    print(number)

4-8 立方:将同一个数字乘三次称为立方。例如,在Python 中,2 的立方用2**3表示。请创建一个列表,其中包含前10 个整数(即1~10)的立方,再使用一个for 循环将这些立方数都打印出来。

numbers = []
for i in range(1,11):
    values = i ** 3
    numbers.append(values)
for number in numbers:
    print(number)

4-9 立方解析:使用列表解析生成一个列表,其中包含前10 个整数的立方。

numbers = list((value ** 3 for value in range(1,11))) # 列表解析

4-10 切片:选择你在本章编写的一个程序,在末尾添加几行代码,以完成如下任务。

①打印消息“The first three items in the list are:”,再使用切片来打印列表的前三个元素。

②打印消息“Three items from the middle of the list are:”,再使用切片来打印列表中间的三个元素。

③打印消息“The last three items in the list are:”,再使用切片来打印列表末尾的三个元素。

places = ['iceland','spain','canda','germany','france']
print('The first three items in the list are:' + str(places[:3]))
print('Three items from the middle of the list are:' + str(places[1:4]))
print('The last three items in the list are:' + str(places[-3:]))

4-11 你的比萨和我的比萨:在你为完成练习4-1 而编写的程序中,创建比萨列表的副本,并将其存储到变量friend_pizzas 中,再完成如下任务。

①在原来的比萨列表中添加一种比萨。

②在列表friend_pizzas 中添加另一种比萨。

③核实你有两个不同的列表。为此,打印消息“My favorite pizzas are:”,再使用一个for 循环来打印第一个列表;打印消息“My friend’s favorite pizzas are:”,再使用一个for 循环来打印第二个列表。核实新增的比萨被添加到了正确的列表中。

pizzas = ['aaa','bbb','ccc']
friend_pizzas = pizzas[:]
pizzas.append('ddd')
friend_pizzas.append('eee')
for pizza in pizzas:
    print('My favorite pizzas are: ' + pizza)
for friend_pizza in friend_pizzas:
    print('My friend’s favorite pizzas are: ' + friend_pizza)

4-12 使用多个循环:在本节中,为节省篇幅,程序foods.py的每个版本都没有使用for 循环来打印列表。请选择一个版本的foods.py,在其中编写两个for 循环,将各个食品列表都打印出来。

for pizza in pizzas:
    print('My favorite pizzas are: ' + pizza)
for friend_pizza in friend_pizzas:
    print('My friend’s favorite pizzas are: ' + friend_pizza)

4-13 自助餐:有一家自助式餐馆,只提供五种简单的食品。请想出五种简单的食品,并将其存储在一个元组中。

①使用一个for 循环将该餐馆提供的五种食品都打印出来。

②尝试修改其中的一个元素,核实Python 确实会拒绝你这样做。

③餐馆调整了菜单,替换了它提供的其中两种食品。请编写一个这样的代码块:给元组变量赋值,并使用一个for 循环将新元组的每个元素都打印出来。

foods = ('aa','bb','cc','dd','ee')
for food in foods:
    print(food)

foods = ('aa','bb','gg','hh','ee')
for food in foods:
    print(food)

第5章 if语句

5-1 条件测试:编写一系列条件测试;将每个测试以及你对其结果的预测和实际结果都打印出来。你编写的代码应类似于下面这样:

car = 'subaru'
print("Is car == 'subaru'? I predict True.")
print(car == 'subaru')

print("\nIs car == 'audi'? I predict False.")
print(car == 'audi')

5-2 更多的条件测试:你并非只能创建10 个测试。如果你想尝试做更多的比较,可再编写一些测试,并将它们加入到conditional_tests.py 中。对于下面列出的各种测试,至少编写一个结果为True 和False 的测试。

①检查两个字符串相等和不等。

②使用函数lower()的q测试。

③检查两个数字相等、不等、大于、小于、大于等于和小于等于。

④使用关键字and 和or 的测试。

⑤测试特定的值是否包含在列表中。

⑥测试特定的值是否未包含在列表中。

x = 'aa'
y = 'aaa'
print(x == y)

print(x.lower == y.lower())

q = 1
w = 3
print(q > w , q < w , q == w , q != w , q >= w , q <= w)

print(q >= 1 and w >= 4)
print(q >= 1 or w >= 4)

list = [1,2,3,4,5,6,7]
print(2 in list)
print(7 not in list)

5-3 外星人颜色#1:假设在游戏中刚射杀了一个外星人,请创建一个名为alien_color 的变量,并将其设置为’green’、’yellow’或’red’。

①编写一条if 语句,检查外星人是否是绿色的;如果是,就打印一条消息,指出玩家获得了5 个点。

②编写这个程序的两个版本,在一个版本中上述测试通过了,而在另一个版本中未通过(未通过测试时没有输出)。

alien_color = 'green'
if alien_color == 'green':
    print('You got 5 points!')

if alien_color == 'red':
    print('You got 5 points!')

5-4 外星人颜色#2:像练习5-3 那样设置外星人的颜色,并编写一个if-else 结构。

①如果外星人是绿色的,就打印一条消息,指出玩家因射杀该外星人获得了5 个点。

②如果外星人不是绿色的,就打印一条消息,指出玩家获得了10 个点。

③编写这个程序的两个版本,在一个版本中执行if 代码块,而在另一个版本中执行else 代码块。

alien_color = 'green'
#alien_color = 'red'
if alien_color == 'green':
    print('You got 5 points!')
else:
    print('You got 10 points!')

5-5 外星人颜色#3:将练习5-4 中的if-else 结构改为if-elif-else 结构。

①如果外星人是绿色的,就打印一条消息,指出玩家获得了5 个点。

②如果外星人是黄色的,就打印一条消息,指出玩家获得了10 个点。

③如果外星人是红色的,就打印一条消息,指出玩家获得了15 个点。

④编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。

alien_color = 'green'
#alien_color = 'yellow'
#alien_color = 'red'
if alien_color == 'green':
    print('You got 5 points!')
elif alien_color =='yellow':
    print('You got 10 points!')
elif alien_color =='red':
    print('You got 15 points!')

5-6 人生的不同阶段:设置变量age 的值,再编写一个if-elif-else 结构,根据age的值判断处于人生的哪个阶段。

①如果一个人的年龄小于2 岁,就打印一条消息,指出他是婴儿。

②如果一个人的年龄为2(含)~4 岁,就打印一条消息,指出他正蹒跚学步。

③如果一个人的年龄为4(含)~13 岁,就打印一条消息,指出他是儿童。

④如果一个人的年龄为13(含)~20 岁,就打印一条消息,指出他是青少年。

⑤如果一个人的年龄为20(含)~65 岁,就打印一条消息,指出他是成年人。

⑥如果一个人的年龄超过65(含)岁,就打印一条消息,指出他是老年人。

age = 23
if age < 2:
    print('baby')
elif age < 4:
    print('bigbaby')
elif age < 13:
    print('child')
elif age < 20:
    print('teenager')
elif age < 65:
    print('adult')
else:
    print('oldman')

5-7 喜欢的水果:创建一个列表,其中包含你喜欢的水果,再编写一系列独立的if语句,检查列表中是否包含特定的水果。

①将该列表命名为favorite_fruits,并在其中包含三种水果。

②编写5 条if 语句,每条都检查某种水果是否包含在列表中,如果包含在列表中,就打印一条消息,如“You really like bananas!”。

favorite_fruits = ['apple','banana','pear']
if 'apple' not in favorite_fruits:
    print('You really like apple')
elif 'banana' in favorite_fruits:
    print('You really like banana')
elif 'pear' in favorite_fruits:
    print('You really like pear')

5-8 以特殊方式跟管理员打招呼:创建一个至少包含5 个用户名的列表,且其中一个用户名为’admin’。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。

①如果用户名为’admin’,就打印一条特殊的问候消息,如“Hello admin, would you like to see a status report?”。

②否则,打印一条普通的问候消息,如“Hello Eric, thank you for logging in again”。

users = ['aa','bb','cc','dd','admin']
for user in users:
    if user == 'admin':
        print('Hello ' + user.title() + ',would you like to see a status report?')
    else:
        print('Hello ' + user.title() + ',thank you for logging in again?')

5-9 处理没有用户的情形:在为完成练习5-8 编写的程序中,添加一条if 语句,检查用户名列表是否为空。

①如果为空,就打印消息“We need to find some users!”。

②删除列表中的所有用户名,确定将打印正确的消息。

users = []
if users == []:
    print('We need to find some users!')

5-10 检查用户名:按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。

①创建一个至少包含5 个用户名的列表,并将其命名为current_users。

②再创建一个包含5 个用户名的列表,将其命名为new_users,并确保其中有一两个用户名也包含在列表current_users 中。

③遍历列表new_users,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。

④确保比较时不区分大小写;换句话说,如果用户名’John’已被使用,应拒绝用户名’JOHN’。

current_users = ['aa','bb','cc','dd','ee']
new_users = ['ff','gg','bb','CC','zz']
for new_user in new_users:
    if new_user.lower() in current_users:
        print(new_user + ' has been used.')
    else:
        print(new_user + ' has not been used.')

5-11 序数:序数表示位置,如1st 和2nd。大多数序数都以th 结尾,只有1、2 和3例外。

①在一个列表中存储数字1~9。

②遍历这个列表。

③在循环中使用一个if-elif-else 结构,以打印每个数字对应的序数。输出内容应为1st、2nd、3rd、4th、5th、6th、7th、8th 和9th,但每个序数都独占一行。

numbers = list(range(1,10))
for number in numbers:
    if number == 1:
        print(str(number) + 'st')
    elif number == 2:
        print(str(number) + 'nd')
    elif number == 3:
        print(str(number) + 'rd')
    else:
        print(str(number) + 'th')

5-12 设置if 语句的格式:审核你在本章编写的程序,确保正确地设置了条件测试的格式。

#略

5-13 自己的想法:与刚拿起本书时相比,现在你是一名能力更强的程序员了。鉴于你对如何在程序中模拟现实情形有了更深入的认识,你可以考虑使用程序来解决一些问题。随着编程技能不断提高,你可能想解决一些问题,请将这方面的想法记录下来。想想你可能想编写的游戏、想研究的数据集以及想创建的Web 应用程序。

#略

第六章 字典

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

dic = {'first_name':'shi',
       'last_name':'yuxuan',
       'age':23,
       'city':'sz'
      }
print(dic)

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

favorite_numbers = {'aa' : 7,
                    'bb' : 5,
                    'cc' : 4,
                    'dd' : 1,
                    'ee' : 9
                   }
print(favorite_numbers)

6-3 词汇表:Python 字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。

①想出你在前面学过的5 个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。

②以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,再打印词汇的含义;也可在一行打印词汇,再使用换行符(\n)插入一个空行,然后在下一行以缩进的方式打印词汇的含义。

vocabulary ={'P':'Python',
             'J':'Java',
             'C':'C',
             'V':'Visual Basic',
            }
for k,v in vocabulary.items():
    print(k ,':', v)

6-4 词汇表2:既然你知道了如何遍历字典,现在请整理你为完成练习6-3 而编写的代码,将其中的一系列print 语句替换为一个遍历字典中的键和值的循环。确定该循环正确无误后,再在词汇表中添加5 个Python 术语。当你再次运行这个程序时,这些新术语及其含义将自动包含在输出中。

vocabulary ={'P':'Python',
             'J':'Java',
             'C':'C',
             'V':'Visual Basic',
             'R :'Ruby',
            }
for k,v in vocabulary.items():
    print(k ,':', v)

6-5 河流:创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键—值对可能是’nile’: ‘egypt’。

①使用循环为每条河流打印一条消息,如“The Nile runs through Egypt.”。

②使用循环将该字典中每条河流的名字都打印出来。

river = {'nile':'egypt',
         'yellow river':'lanchow',
         'Mississippi River':'north America'
        }
for k,v in river.items():
    print('The ' + k.title() + ' runs through ' + v.title())
    
for k in river.keys():
    print(k)
    
for v in river.values():
    print(v)

6-6 调查:在6.3.1 节编写的程序favorite_languages.py 中执行以下操作。

①创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。

②遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。

favorite_languages = {'jen': 'python',
                      'sarah': 'c',
                      'edward': 'ruby',
                      'phil': 'python',
                     }
interviewer = ['jen','edward','phil','jacob','bobo']
for i in interviewer:
    if i in favorite_languages.keys():
        print(i + ',thank u')
    else:
        print(i + ',i invite u to join the interview')

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

name1 = {'first_name':'shi',
       'last_name':'yuxuan',
       'age':23,
       'city':'sz'
        }
name2 = {'first_name':'jacob',
       'last_name':'aa',
       'age':17,
       'city':'cz'
        }
name3 = {'first_name':'david',
       'last_name':'bb',
       'age':27,
       'city':'lz'
        }
list = [name1,name2,name3]
for i in list:
    print(i)

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

cat = {'name':'kitty','owner':'lucy'}
dog = {'name':'Da Huang','owner':'nancy'}
rabbit = {'name':'little white','owner':'mary'}
pets = [cat,dog,rabbit]
for pet in pets:
    print(pet)

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

favorite_palces = {'alice':['shanghai','guangzhou','shenzhen'],
                   'nancy':['zhuhai','xiamen','beijing'],
                   'bob':['ningxia','yunnan']
                  }
for k,v in favorite_palces.items():
    print(k,':')
    for place in v:
        print('\t',place)

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

perfer_num= {'Nancy':[1,2,3],
             'Lucky':[2,3,4],
             'Handsome_Girl':[3,4,5],
             'Mary':[4,5,6],
             'Tony':[5,6,7],
            }
for k,v in perfer_num.items():
    print(k,':')
    for number in v:
        print('\t',number)

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

cities = {'A':{'country':'china',
               'population':32100,
               'fact':'A'
              },
          'B':{'country':'england',
               'population':36464,
               'fact':'B'
              },
          'C':{'country':'america',
               'population':465487,
               'fact':'C'
              },
         }
for k,v in cities.items():
    print(k,':')
    for feature,value in v.items():
        print(feature,':',value)

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

初壹先生
版权声明:本站原创文章,由初壹先生2021-09-30发表,共计17476字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
载入中...