1. 前言

前面了解了循环的基本结构和使用,本次再重温一下。for的基本形式为:

for循环变量in遍历结构:

语句块

而while的其基本形式为:

while判断条件:

语句块

二者在执行流程上有些许不同,代表着在使用场景上也会有些差异。while循环与for循环在应用过程中最大差异在于:while循环是基于条件判断的,而for循环则是基于容器的(没有明确对象的,如各个科室、班级等)。

while循环,当条件满足将一直处于循环状态(后面会提到的break等除外);

for循环,当容器内的元素没有迭代结束,则一直处于循环状态(后面会提到的break等除外);

日常遇到做循环问题时,先了解下是否有迭代对象,如果有就优先用for,如果没有就用whlie,只是说优先而非必须,是在很多情况下两种循环都可以来回转换,只不过效率上会所区别(看着有点迷糊,下边实操感受下)。

2. 练习拿上次结尾处的例子来说:想要计算1,  3,  5,  7,  9, 11, 13, 15, 17, 19……95, 97, 99(即100以内的奇数-不能被2整除)的总和,用for与while的分别处理如下:

while

python中循环例题 python循环语句 题库_for循环

for

python中循环例题 python循环语句 题库_python_02

两种都可以实现,while可以直接进行条件判断来实现,不需要构建任何的容器型变量(for_condition = np.arange(1,101,2)),从执行速度上看while也略微占点优势,不过整体可以忽略不计:

while:executed in 22ms,

for:executed in 24ms,

由于这种情况下,for需要将判断条件人为地组装成一个容器来实现条件的循环,相当于多了一步思考,这种情况下相比for用while更方便些,可以直接地处理掉;再看下面这种情况,把’I like python’这个语句全部打印出来(包括空格):

while

python中循环例题 python循环语句 题库_python中循环例题_03

for

python中循环例题 python循环语句 题库_for循环_04

可以看出来,也都可以实现,for可以不需要转换,直接进行循环判断(可以将str_condiion = 'I like python'理解为一个容器),而while需要作一步转换,即判断下整体整句话的长度(len(str_condiion)表示这句话的长度大小,即包括空格在内一共有多少个字符),然后通过循环的方式,判断是否在字符的长度以内(注:这里涉及到引用,Python里的引用序号基本都是从0开始,即如果有10个字符组成的字符串,那么引用时其范围是0~9,而非1~10)。

有容器的这种情况下for更加好理解些,就相当于把里面的内容一个个拿出来,直到内容拿完为止;而没有容器的情况下while更好理解些,只要大于某个临界值就终止。在实际使用的过程中会有其他的问题,比如如果只想打印str_condiion = 'I like python'中的字母,而不打印空格呢(可以考虑if判断等)?如果打印过程中碰到字母o即结束循环?那应该怎么做呢?


python中循环例题 python循环语句 题库_for循环_05