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


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

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

Chapter4

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

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

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

pizzas = ["pepperoni", "meat", "fruit"]
for pizza in pizzas:
   print(pizza)
   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 grea pet!”这样的句子。

animals = ["pig", "dog", "cat"]
for animal in animals:
   print(animal)
   print("A " + animal + " would make a great pet.\n")
print("Any of these animals would make a great pet!")

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

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

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

numbers = []
for number in range(1, 1000001):
   numbers.append(number)
   print(number)

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

numbers = [value for value in range(1, 1000001)]
print(min(numbers))
print(max(numbers))
print(sum(numbers))

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

numbers = [number for number in range(1, 20, 2)]
print(numbers)
for number in numbers:
   print(number)

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

numbers = [number for number in range(3, 33, 3)]
for number in numbers:
   print(number)

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

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

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

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

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

□ 打印信息“The first three item in the list are:”再使用切片来打印列表中间的三个元素。

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

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

numbers = []
for number in range(1, 11):
   numbers.append(number**3)
print(numbers)
print("The first three items in the list are:" + str(numbers[0:3]))
print("Three items from the middle of the list are:" + str(numbers[4:7]))
print("The last three items in the list are:" + str(numbers[-3:]))

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

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

□ 在列表friend_pizza中添加一种比萨。

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

pizzas = ["pepperoni", "meat", "fruit"]
for pizza in pizzas:
   print(pizza)
   print("I like " + pizza + "pizza.")
print("I really love pizza!")  
friend_pizzas = pizzas[:]
friend_pizzas.append("bat")
pizzas.append("shit")
print("My favorite pizzas are:")
for pizza in pizzas:
   print(pizza)
print("My friend's favorite pizzas are:")
for pizza in friend_pizzas:
   print(pizza)

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

my_foods = ["pizza", "falafel", "carrot cake"]
friend_foods = my_foods[:]
my_foods.append("cannoil")
friend_foods.append("ice cream")
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
print("My'foods")
for pizza in my_foods:
   print(pizza)
print("Friend'foods")
for food in friend_foods:
   print(food)

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

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

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

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

foods = ("pizza", "fruit", "meat", "tea", "coffee")
for food in foods:
   print(food)
foods = ("pizza", "snake", "bat", "tea", "coffee")
for food in foods:
   print(food)

文章作者: 陈细利
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陈细利 !
评论
 上一篇
Python编程从入门到实践答案2 Python编程从入门到实践答案2
这本书是我自学Python的第一本书,里面的习题都在寒假已经完成,由于当时博客尚未搭建,故里面题目的答案并未发表。现在在开发项目博客没有新内容更新,因此这段实践会陆续上传原来的习题答案。每个题目均为自己设计的代码,优化与重构方面与标准答案可
下一篇 
Python项目1 Python项目1
项目一——外星人入侵​ 这个项目是开发一个小游戏。第一部分,先创建一艘能够根据用户输入而左右移动和设计的飞船,再创建一群作为射击目标的外星人。第二部分,让这群外星人向两边和下面移动,并删除被子弹击中的外星人,并显示玩家拥有的飞
2020-07-12
  目录