Python编程从入门到实践答案2


这本书是我自学Python的第一本书,里面的习题都在寒假已经完成,由于当时博客尚未搭建,故里面题目的答案并未发表。现在在开发项目博客没有新内容更新,因此这段实践会陆续上传原来的习题答案。每个题目均为自己设计的代码,优化与重构方面与标准答案可能有所不同。

参考教材:《Python编程从入门到实践》 【美】 Eric Matthes 著

Chapter3

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

name = ['chen xili','xiao longgang','cao zhongye','ke zheng','yuan jichen']
print(name[0].title())
print(name[1].title())
print(name[2].title())
print(name[3].title())
print(name[4].title())

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

name = ['chen xili','xiao longgang','cao zhongye','ke zheng','yuan jichen']
message0 = "Hello,next to meet you," + name[0].title() + "."
print(message0)
message1 = "Hello,next to meet you," + name[1].title() + "."
print(message1)
message2 = "Hello,next to meet you," + name[2].title() + "."
print(message2)
message3 = "Hello,next to meet you," + name[3].title() + "."
print(message3)
message4 = "Hello,next to meet you," + name[4].title() + "."
print(message4)

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

ways = ['car','bicycle','motorcycle','subway','bus']
message0 = "I would like to won a Honda " + ways[2] + "."
message1 = "I ofeten go to school by " + ways[-1] + "."
message2 = "I prefre " + ways[0] + "than " + ways[1] + " and " + ways[3] + "."
print(message0)
print(message1)
print(message2)

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

names = ["chen xili","xiao longgang","cao zhongye","ke zheng","zhou qichao"]
message0 = names[0] + ",please come to dinner."
print(message0)
message1 = names[1].title() + ",please come to dinner."
print(message1)
message2 = names[2].title() + ",please come to dinner."
print(message2)
message3 = names[3].title() + ",please come to dinner."
print(message3)
message4 = names[4].title() + ",please come to dinner."
print(message4)
print(len(names))

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

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

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

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

names = ["chen xili","xiao longgang","cao zhongye","ke zheng","zhou qichao"]
message1 = names[1].title() + ",please come to dinner."
message2 = names[2].title() + ",please come to dinner."
message3 = names[3].title() + ",please come to dinner."
message4 = names[4].title() + ",please come to dinner."
print("Because " + names[0].title() + " have an important meeting,so he can't have dinner with us.")
names[0] = "ke qiao"
message0 = names[0].title() + ",please come to dinner."
print(names)
print(message0)
print(message1)
print(message2)
print(message3)
print(message4)

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

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

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

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

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

names = ["chen xili","xiao longgang","cao zhongye","ke zheng","zhou qichao"]
print("Everybody,I found a bigger tabble.")
names.insert(0,"chen xiaopeng")
names.insert(4,"wu mingze")
names.append("liang xuan")
message0 = names[0] + ",please come to dinner."
message1 = names[1].title() + ",please come to dinner."
message2 = names[2].title() + ",please come to dinner."
message3 = names[3].title() + ",please come to dinner."
message4 = names[4].title() + ",please come to dinner."
message5 = names[5].title() + ",please come to dinner."
message6 = names[6].title() + ",please come to dinner."
message7 = names[7].title() + ",please come to dinner."
print(message0)
print(message1)
print(message2)
print(message3)
print(message4)
print(message5)
print(message6)
print(message7)

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

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

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

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

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

names = ["chen xili", "xiao longgang", "cao zhongye","ke zheng","zhou qichao"]
print("Everybody,I found a bigger tabble.")
names.insert(0,"chen xiaopeng")
names.insert(4,"wu mingze")
names.append("liang xuan")
message0 = names[0] + ",please come to dinner."
message1 = names[1].title() + ",please come to dinner."
message2 = names[2].title() + ",please come to dinner."
message3 = names[3].title() + ",please come to dinner."
message4 = names[4].title() + ",please come to dinner."
message5 = names[5].title() + ",please come to dinner."
message6 = names[6].title() + ",please come to dinner."
message7 = names[7].title() + ",please come to dinner."
print(message0)
print(message1)
print(message2)
print(message3)
print(message4)
print(message5)
print(message6)
print(message7)
print("Sorry,everyone,because my table that I bought yesterday can't delivery,so I just can invite two guest.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
print(names[0].title() + ",please come to dinner.")
print(names[1].title() + ",please come to dinner.")
del names[0]
del names[0]
print(names)
print(len(names))

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

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

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

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

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

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

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

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

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

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

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

places = ["wuhan", "beijing", "shanghai", "sichuan", "zhejiang"]
print("Original order:")
print(places)
print("\nAlphabetical:")
print(sorted(places))
print("\nOriginal order again:")
print(places)
print("\nReverse alphabetical:")
print(sorted(places,reverse = True))
print("\nOriginal order again:")
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()打印一条信息,指出你邀请了多少位嘉宾来与你共进晚餐。

names = ["chen xili", "xiao longgang", "cao zhongye", "ke zheng", "zhou qichao"]
print("Everybody,I found a bigger tabble.")
names.insert(0,"chen xiaopeng")
names.insert(4,"wu mingze")
names.append("liang xuan")
message0 = names[0] + ",please come to dinner."
message1 = names[1].title() + ",please come to dinner."
message2 = names[2].title() + ",please come to dinner."
message3 = names[3].title() + ",please come to dinner."
message4 = names[4].title() + ",please come to dinner."
message5 = names[5].title() + ",please come to dinner."
message6 = names[6].title() + ",please come to dinner."
message7 = names[7].title() + ",please come to dinner."
print(message0)
print(message1)
print(message2)
print(message3)
print(message4)
print(message5)
print(message6)
print(message7)
print("Sorry,everyone,because my table that I bought yesterday can't delivery,so I just can invite two guest.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
guest = names.pop()
print("Sorry," + guest.title() + ",there is no room at the table.")
print(names[0].title() + ",please come to dinner.")
print(names[1].title() + ",please come to dinner.")
del names[0]
del names[0]
print(names)
print(len(names))

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

countries = ["China", "America", "England"]
print(countries[0])
countries[2] = "Canada"
print(countries)
countries.append("England")
countries.insert(3,"Japan")
print(countries)
del countries[3]
the_best_stronger = countries.pop(0)
print("I love " + the_best_stronger + ".")
print(countries)
countries.remove("America")
print(countries)
countries.sort(reverse = True)
print(countries)
print(sorted(countries))
print(len(countries))

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

countries = ["China", "America", "England"]
print(countries[0])
countries[10] = "Canada"   # 列表中没有11个元素,错误索引
print(countries)
countries.append("England")
countries.insert(3, "Japan")
print(countries)
del countries[3]
the_best_stronger = countries.pop(0)
print("I love " + the_best_stronger + ".")
print(countries)
countries.remove("America")
print(countries)
countries.sort(reverse=True)
print(countries)
print(sorted(countries))
print(len(countries))

报错为:

Traceback (most recent call last):
  File "F:/学习资料/python_work/作业/Python编程从入门到实践/Chapter3/text3-10.py", line 3, in <module>
    countries[10] = "Canada"
IndexError: list assignment index out of range

修改后的代码:

countries = ["China", "America", "England"]
print(countries[0])
countries[2] = "Canada"
print(countries)
countries.append("England")
countries.insert(3, "Japan")
print(countries)
del countries[3]
the_best_stronger = countries.pop(0)
print("I love " + the_best_stronger + ".")
print(countries)
countries.remove("America")
print(countries)
countries.sort(reverse=True)
print(countries)
print(sorted(countries))
print(len(countries))

文章作者: 陈细利
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陈细利 !
评论
 上一篇
Python编程从入门到实践答案4 Python编程从入门到实践答案4
这本书是我自学Python的第一本书,里面的习题都在寒假已经完成,由于当时博客尚未搭建,故里面题目的答案并未发表。现在在开发项目博客没有新内容更新,因此这段实践会陆续上传原来的习题答案。每个题目均为自己设计的代码,优化与重构方面与标准答案可
下一篇 
Python编程从入门到实践答案3 Python编程从入门到实践答案3
这本书是我自学Python的第一本书,里面的习题都在寒假已经完成,由于当时博客尚未搭建,故里面题目的答案并未发表。现在在开发项目博客没有新内容更新,因此这段实践会陆续上传原来的习题答案。每个题目均为自己设计的代码,优化与重构方面与标准答案可
  目录