for 和 while 循环 - 交互式学Python | 莫烦Python


视频还在录制中~


for 和 while 循环

作者: 莫烦 编辑: 莫烦 2021-04-24

在程序设计的时候,我们最常用到的一项功能就是循环了。 而且这也是为什么我们喜欢机器的一个原因。想想如果有一个人无怨无悔,一直在帮你做着一件重复的劳动, 如果这个是真人的话,我想这世界上应该也没人愿意这么干。

只有机器才能将我们重这种重复的劳动中释放出来。今天我们从文件管理系统的角度, 看看有哪些东西是可以被循环解决的。

for 循环

在程序设计中,不管你使用哪种语言,其中都有一个叫 for 的循环种类。当你想要逐个包你书包里的书拿出来, 逐个将新书写上你自己的名字,这一类的重复事项,都可以让 for 来帮你。 下面我们来看看如果在文件系统中,我们想为文件名批量递增序号,应该怎么办。

想必当你试完以后,你也发现了,这个 range() 会一次次给你放出 0,1,2,3,4 这些数,如果是 range(10) 它就会放出从0到9的一共10个数。 这个 range(10) 当中的 10 也就是从0开始一直到10之前的10个数。其实你还可以像下面这么写。 range(2,5) 表示从2开始,一直到5之前的 2,3,4 3个数。

还有一种写法,可以让你跳着走,有时候不一定你想所有数都放出来,比如你想间隔几个在出一个数,你可以这么写。 range(3, 10, 2) 就表示了,从3开始,一直到10之前,每2次出一次数。

后面当我们学到列表和字典的时候,还有更多的玩法。 而且后面我们也会介绍关于 for 循环的偷懒用法~

While 循环

和 for 循环一样,while 循环在程序设计中也占据了大半江山。和 for 循环的最大不同点我列在下面的表格中:

特点
for 天然适合在有限的循环中
while 可以被用在无限循环中

其实我想表达的意思是,如果你脑海中想到的是要处理一个一开始就有明确长度的序列,那么你第一个想到的应该是 for 循环。 如果你脑海中这个序列你不知道要在什么时候停,或者它是无限长的一个序列,或者运行无限次数,那你第一个想到的应该要用 while 循环。 while 循环可以用条件来限制他的循环次数。

比如下面这个循环,我想猜一个数字(现在悄悄告诉你是20),当我猜的和这个数字不同的时候,我就往猜的数字上加一。 guess_num += 1 这个运算在前面讲过, 是用来做及时累加的功能。

注意,如果你不小心触发了死循环,程序一直在运行,你只能强行停止程序。在莫烦Python上若运行碰到while死循环的话,你就只能刷新页面啦!

重要的话说三遍

死循环了请刷新页面!

死循环了请刷新页面!

死循环了请刷新页面!

continue 和 break

前面我们尝试过了按照一个条件来终止循环,但是我们还有一些小技巧,让循环更加好用,写得读着会更加舒服。 比如将要介绍的 break,它最主要的目的就是为了个性化的终止当前循环。如果你有改过上面那个 while 循环的代码, 而且正好碰到了死循环的状态,你有可能会尝试这样写,用一个 count 来计数,统计尝试的次数,避免死循环的发生。

那么 break 也能救你于水火之中,及时停止循环,而且 break 这个词在我看来,自带终止的含义,就是用来处理危险状况的~

for 循环中,也是可以用 break 的。反正 breakcontinue 只要是个循环,他们就能管用。

好了,我们已经介绍了这个紧急刹车器 break,那么我们再来介绍一下它的孪生兄弟 continue。现在你可以简单的理解成这样:

比喻
break 紧急弹出
continue 算了,我接着来

continue 在我自己的实践中,我很常把它用在判断一个数据如果不能被处理的话,我就把它跳过,接着处理下一个数据。


降低知识传递的门槛

莫烦很常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 通过 【赞助莫烦】 能让我感到认同,我也更有理由坚持下去。

    交互式学Python