Python编程:从入门到实践(第2版)第四章课后题

第四章

4.2

练习4-1:比萨  想出至少三种你喜欢的比萨,将其名称存储在一个列表中, 再使用for 循环将每种比萨的名称打印出来。 修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅是比萨的名 称。对于每种比萨,都显示一行输出,下面是一个例子。 I like pepperoni pizza. 在程序末尾添加一行代码,它不在for 循环中,指出你有多喜欢比萨。输 出应包含针对每种比萨的消息,还有一个总结性句子,下面是一个例子。 I really love pizza!

# 存储喜欢的比萨的列表
favorite_pizzas = ["Pepperoni", "Margherita", "Supreme"]

# 使用for循环打印每种比萨的名称
for pizza in favorite_pizzas:
    print(pizza)

# 使用for循环打印包含比萨名称的句子
for pizza in favorite_pizzas:
    print(f"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!

# 存储有共同特征的动物的列表
animals = ["Dog", "Cat", "Rabbit"]

# 使用for循环打印每种动物的名称
for animal in animals:
    print(animal)

# 使用for循环打印每种动物的描述句子
for animal in animals:
    print(f"A {animal.lower()} would make a great pet.")  # 将动物名称转换为小写

# 打印共同之处的总结性句子
print("Any of these animals would make a great pet!")

4.3

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

# 使用一个for循环打印数1~20(含)
for number in range(1, 21):
    print(number)

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

# 创建一个包含数1~1 000 000的列表,并使用一个for循环将这些数打印出来
numbers = list(range(1, 1000001))

for number in numbers:
    print(number)

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

# 创建一个包含数1~1 000 000的列表
numbers = list(range(1, 1000001))

# 使用min()和max()核实列表的范围
print("Minimum number:", min(numbers))
print("Maximum number:", max(numbers))

# 使用sum()计算列表的总和
print("Sum of numbers:", sum(numbers))

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

# 使用range()创建一个列表,其中包含1~20的奇数,并使用一个for循环打印这些数
odd_numbers = list(range(1, 21, 2))

for number in odd_numbers:
    print(number)

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

# 创建一个列表,其中包含3~30能被3整除的数,并使用一个for循环打印这些数
multiples_of_three = list(range(3, 31, 3))

for number in multiples_of_three:
    print(number)

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

# 创建一个列表,其中包含前10个整数的立方,并使用一个for循环打印这些立方数
cubes = []

for number in range(1, 11):
    cube = number ** 3
    cubes.append(cube)

for cube in cubes:
    print(cube)

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

# 使用列表解析生成一个列表,其中包含前10个整数的立方
cubes = [number ** 3 for number in range(1, 11)]

# 打印生成的列表
print(cubes)

4.4

练习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:”,再使用切片来打 印列表的末尾三个元素。

# 原始程序
numbers = list(range(1, 11))

# 添加几行代码,完成任务
print("The first three items in the list are:")
print(numbers[:3])

print("Three items from the middle of the list are:")
print(numbers[3:6])

print("The last three items in the list are:")
print(numbers[-3:])

练习4-11:你的比萨,我的比萨  在你为完成练习4-1而编写的程序中,创建 比萨列表的副本,并将其赋给变量friend_pizzas ,再完成如下任务。 在原来的比萨列表中添加一种比萨。 在列表friend_pizzas 中添加另一种比萨。 核实有两个不同的列表。为此,打印消息“My favorite pizzas are:”, 再使用一个for 循环来打印第一个列表;打印消息“My friend's favorite pizzas are:”,再使用一个for 循环来打印第二个列表。核实 新增的比萨被添加到了正确的列表中。

# 原始程序
my_favorite_pizzas = ["Pepperoni", "Margherita", "Supreme"]
friend_pizzas = my_favorite_pizzas[:]

# 在原来的比萨列表中添加一种比萨
my_favorite_pizzas.append("Hawaiian")

# 在列表friend_pizzas中添加另一种比萨
friend_pizzas.append("Vegetarian")

# 打印消息
print("My favorite pizzas are:")
for pizza in my_favorite_pizzas:
    print(pizza)

print("\nMy friend's favorite pizzas are:")
for pizza in friend_pizzas:
    print(pizza)

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

# 选择版本为foods.py中的一个版本,假设是版本1
foods = ["Pizza", "Burger", "Pasta", "Sushi", "Tacos"]

# 使用多个循环打印食品列表
print("Printing foods using multiple loops:")

print("Foods in the list:")
for food in foods:
    print(food)

print("\nFoods in the list (uppercase):")
for food in foods:
    print(food.upper())

4.5

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

  • 使用一个for 循环将该餐馆提供的五种食品都打印出来。
  • 尝试修改其中的一个元素,核实Python确实会拒绝你这样做。
  • 餐馆调整了菜单,替换了它提供的其中两种食品。
  • 请编写一个这样的代码块:给元组变量赋值,并使用一个for循环将新元组的每个元素都打印出来。
# 存储五种简单的食品的元组
menu = ("Pizza", "Burger", "Pasta", "Salad", "Soup")

# 使用一个for循环将餐馆提供的五种食品都打印出来
print("餐馆提供的食品:")
for item in menu:
    print(item)

# 尝试修改元组中的一个元素
# menu[0] = "Sushi"  # 这行代码会引发TypeError,因为元组是不可变的

# 餐馆调整了菜单,替换了其中的两种食品
menu = ("Sushi", "Sandwich", "Pasta", "Salad", "Soup")

# 使用一个for循环将新元组的每个元素都打印出来
print("\n调整后的菜单:")
for item in menu:
    print(item)

 4.6

练习4-14:PEP 8  请访问Python网站并搜索“PEP 8 — Style Guide for Python Code”,阅读PEP 8格式设置指南。当前,这些指南适用的情况不多, 但可以大致浏览一下。

PEP 8是Python官方的代码风格指南,它提供了一系列规范,用于编写Python代码时的格式化和样式。你可以在Python官方网站上找到完整的PEP 8文档。

练习4-15:代码审核  从本章编写的程序中选择三个,根据PEP 8指南对它们进行修改。 每级缩进都使用四个空格。

  • 对你使用的文本编辑器进行设置,使其在你按 Tab键时插入四个空格。
  • 如果你还没有这样做,现在就去做吧(有关如何设 置,请参阅附录B)。
  • 每行都不要超过80字符。
  • 对你使用的编辑器进行设置,使其在第80个字符 处显示一条垂直参考线。
  • 不要在程序文件中过多使用空行。

这里是一个不满足PEP 8的代码:

# 原始代码
menu = ("Pizza", "Burger", "Pasta", "Salad", "Soup")
for item in menu:
    print(item)
menu = ("Sushi", "Sandwich", "Pasta", "Salad", "Soup")
for item in menu:
    print(item)

 修改后:

# 修改后的代码
menu = ("Pizza", "Burger", "Pasta", "Salad", "Soup")

# 使用一个for循环将餐馆提供的五种食品都打印出来
print("餐馆提供的食品:")
for item in menu:
    print(item)

# 餐馆调整了菜单,替换了其中的两种食品
menu = ("Sushi", "Sandwich", "Pasta", "Salad", "Soup")

# 使用一个for循环将新元组的每个元素都打印出来
print("\n调整后的菜单:")
for item in menu:
    print(item)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值