《python编程从入门到实践》第2版 第四章课后练习

练习4-1

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

  • 修改这个 for 循环,使其打印包含比萨名称的句子,而不仅仅是比萨的名称。对于每种比萨,都显示一行输出,下面是一个例子。
    I like pepperoni pizza.
  • 在程序末尾添加一行代码,它不在for 循环中,指出你有多喜欢比萨。输出应包含针对每种比萨的消息,还有一个总结性句子,下面是一个例子。
I really love pizza!
favorite_pizzas = ['pepperoni', 'hawaiian', 'veggie']
for favorite_pizza in favorite_pizzas:
    print(favorite_pizza)
    print(f"I like {favorite_pizza} pizza.")
print("\nI really love pizza!")

输出:

pepperoni
I like pepperoni pizza.
hawaiian
I like hawaiian pizza.
veggie
I like veggie pizza.

I really love pizza!

练习4-2

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

  • 修改这个程序,使其针对每种动物都打印一个句子,下面是一个例子。
    A dog would make a great pet.
  • 在程序末尾添加一行代码,指出这些动物的共同之处,如打印下面这样的句子。
Any of these animals would make a great pet!
animals = ['rabbit', 'monkey', 'kangaroo']
for animal in animals:
    print(animal)
    print(f"A {animal} would make a great pet.")
print(f"\nAny of these animals would make a great pet!")

输出:

rabbit
A rabbit would make a great pet.
monkey
A monkey would make a great pet.
kangaroo
A kangaroo would make a great pet.

Any of these animals would make a great pet!

练习4-3

数到20 使用一个for 循环打印数1~20(含)。

numbers = list(range(1, 21))
for number in numbers:
    print(number)

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

练习4-4

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

millions = list(range(1, 1_000_001))
for million in millions:
    print(million)

输出:略

练习4-5

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

millions = list(range(1, 1_000_001))
print(min(millions))
print(max(millions))
print(sum(millions))

输出:

1
1000000
500000500000

练习4-6

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

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

输出:

1
3
5
7
9
11
13
15
17
19

练习4-7

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

multiples_of_three = list(range(3, 31, 3))
for multiple_of_three in multiples_of_three:
    print(multiple_of_three)

输出:

3
6
9
12
15
18
21
24
27
30

练习4-8

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

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

输出:

1
8
27
64
125
216
343
512
729
1000

练习4-9

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

cube_anlyses = [value**3 for value in range(1, 11)]
for cube_anlysis in cube_anlyses:
    print(cube_anlysis)

输出:

1
8
27
64
125
216
343
512
729
1000

练习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:”,再使用切片来打印列表的末尾三个元素。
foods = ['pizza', 'falafel', 'carrot cake', 'chocolates', 'ice cream']
print("The first three items in the list are:")
for food in foods[:3]:
    print(food)
print("Three items from the middle of the list are:")
for food in foods[1:4]:
    print(food)
print("The last three items in the list are:")
for food in foods[-3:]:
    print(food)

输出:

The first three items in the list are:
pizza
falafel
carrot cake
Three items from the middle of the list are:
falafel
carrot cake
chocolates
The last three items in the list are:
carrot cake
chocolates
ice cream

练习4-11

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

  • 在原来的比萨列表中添加一种比萨。
  • 在列表friend_pizzas 中添加另一种比萨。
  • 核实有两个不同的列表。为此,打印消息“My favorite pizzas are:”,再使用一个for 循环来打印第一个列表;打印消息“My friend’s favorite pizzas are:”,再使用一个for
    循环来打印第二个列表。核实新增的比萨被添加到了正确的列表中。
favorite_pizzas = ['pepperoni', 'hawaiian', 'veggie']
friend_pizzas = favorite_pizzas[:]
favorite_pizzas.append('cannoli')
friend_pizzas.append('ice cream')
print("My favorite pizzas are:")
for pizza in favorite_pizzas:
    print(pizza)
print("My friend's favorite pizzas are:")
for pizza in friend_pizzas:
    print(pizza)

输出:

My favorite pizzas are:
pepperoni
hawaiian
veggie
cannoli
My friend's favorite pizzas are:
pepperoni
hawaiian
veggie
ice cream

练习4-12

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

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]

my_foods.append('cannoli')
friend_foods.append('ice cream')

print("My favorite foods are:")
for food in my_foods:
    print(food)

print("\nMy friend's favorite foods are:")
for food in friend_foods:
    print(food)

输出:

My favorite foods are:
pizza
falafel
carrot cake
cannoli

My friend's favorite foods are:
pizza
falafel
carrot cake
ice cream

练习4-13

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

  • 使用一个for 循环将该餐馆提供的五种食品都打印出来。
  • 尝试修改其中的一个元素,核实Python确实会拒绝你这样做。
  • 餐馆调整了菜单,替换了它提供的其中两种食品。请编写一个这样的代码块:给元组变量赋值,并使用一个 for 循环将新元组的每个元素都打印出来。
buffets = ('rockfish sandwich', 'halibut nuggets', 'smoked salmon chowder',
           'salmon burger', 'crab cakes')
print("You can choose from the following buffets:")
for buffet in buffets:
    print(f"-{buffet}")
# buffets[0] = 'hearty steak'
print("\nOur buffets has been updated.")
print("You can now choose from the following buffets:")
buffets = ('rockfish sandwich', 'halibut nuggets', 'smoked salmon chowder',
           'black cod tips', 'king crab legs')
for buffet in buffets:
    print(f"-{buffet}")

输出:

You can choose from the following buffets:
-rockfish sandwich
-halibut nuggets
-smoked salmon chowder
-salmon burger
-crab cakes

Our buffets has been updated.
You can now choose from the following buffets:
-rockfish sandwich
-halibut nuggets
-smoked salmon chowder
-black cod tips
-king crab legs

练习4-14

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

练习4-15

代码审核 从本章编写的程序中选择三个,根据PEP 8指南对它们进行修改。

  • 每级缩进都使用四个空格。对你使用的文本编辑器进行设置,使其在你按Tab键时插入四个空格。如果你还没有这样做,现在就去做吧(有关如何设置,请参阅附录B)。
  • 每行都不要超过80字符。对你使用的编辑器进行设置,使其在第80个字符处显示一条垂直参考线。
  • 不要在程序文件中过多使用空行。
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白*进阶ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值