python的while循环与for循环总结

前两章中,我们跟着海绵宝宝的故事,掌握了 while 循环和 for 循环,这两种不同的循环模式。while 循环和 for 循环都需要有 循环体 和 缩进,我们来复习一下它俩的语法规则:

while 循环与 for 循环辨析

学到这里,对于 while 循环与 for 循环要怎么用,你已经相当熟悉啦,它们都能满足将某件事重复多次的需求。下面这两段代码都能将“美味蟹黄堡”打印 3 遍,只是 for 循环代码要更简洁:

# while 循环
i = 0
while i < 3:
  print('美味蟹黄堡')
  i += 1  # 还记得 i += 1 是 i = i + 1 的缩写吗?

# for 循环
for i in range(3):
  print('美味蟹黄堡')

这么一看,while 循环和 for 循环的功能似乎没有差异呀?那 Python 中何必还要有两种不同的循环语句呢?

要回答这个问题,首先要理清楚两种循环的不同之处,二者最大的区别在于 循环次数是否确定,我们结合两种循环的终止条件来理解一下。

先来看 for 循环。for 循环的执行逻辑很好理解,遍历序列,遍历结束后循环终止。所以说,for 循环的循环次数是确定的,序列中有多少个元素,循环就执行多少次:

# 循环次数确定
names = ['海绵宝宝', '派大星', '泡芙老师', '珊迪', '蟹老板']
for i in names:
  print(i)

而 while 循环是在条件不满足时终止循环,我们不需要给出一个确定的循环次数。所以,如果你也不确定要让 Python 把某件事重复多少遍,那用 while 循环就刚好合适:

# 循环次数不确定
name = ''
while name != '海绵宝宝':
  name = input('猜猜我是谁?')

大多数情况下,两种循环是通用的,但像上面这个例子一样的猜名字、猜数字问题,只能通过 while 循环来实现。

总结一下,while 循环和 for 循环有着完全不同的循环模式。写 for 循环时,我们无需额外去思考循环的终止条件,只需要提供待遍历的数据;写 while 循环则不一样,无需关心循环的执行次数,只需要提供清晰有效的循环条件。

两种循环在大多数情况下通用,但各自的特点决定了它们更适合用来解决两类不同的循环问题:

编程练习

仿照课程中的例子,我们给海绵宝宝写一个工作提醒器吧。要求:

  • 询问是否下班了,并使用变量 answer 获取用户输入;
  • 如果用户输入的不是 下班了,就重复打印 小海绵努力工作中……,并再次询问是否下班了。
  • 如果输入的是 下班了,就结束循环,并打印 回家找小蜗啦

想想看,哪种循环适合解决这个问题呢?🤔

answer = input('下班了吗?输入下班了/没下班')
working = '小海绵努力工作中……'
go_home = '回家找小蜗啦'

因为前面几章的练习,都是一些固定参数的循环,到这反而有点不习惯了,但是自己观察就会发现,其实逻辑上还是一样的,知识多了一个 input()

answer = input('下班了吗?输入下班了/没下班')
working = '小海绵努力工作中……'
go_home = '回家找小蜗啦'

while answer != '下班了':
  print(working)
  answer = input('下班了吗?输入下班了/没下班')

print(go_home)

两位循环魔法师各有所长,有了他们的加入,蟹黄堡产能大爆发,到店的客人络绎不绝,连食材供应都跟不上了。

大 Boss 蟹老板嘱咐海绵宝宝,一定要做好食材管理,如果仓库里的食材已经不够了,那无论是否还有客人等待,都停止做蟹黄堡。

新需求来了!我们不仅要告诉 Python 循环在何时执行,还要在某个时刻强制终止循环。一切的一切,都需要我们对循环进行更精细的控制。

下面一篇文章就让我来带你认识两种常用的 循环控制语句(break与continue)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值