51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python基础 – while循环

for循环回顾

学习了如何利用for语句实现代码重复执行的循环结构。

通过遍历列表,输出其中的每一个元素。

for循环就像是排队办事,一个个进入,轮流办理,每个人经历的流程都一样。

在for循环,一次遍历就是一次循环,因此我们知道会经历过几次循环。

在另一种情况下,我们并不关心循环几次,只在意循环什么时候结束。

这样的循环逻辑,就对应Python中的条件循环(也叫while循环)。

条件循环

条件循环,又称while循环,以判断条件是否成立,来决定是否执行循环内的代码。

当判断为真时,代码会循环执行,当判断为假时则终止循环。

while循环中,有一个判断条件,来决定是否执行循环内的代码。

判断为True,则继续执行循环;
判断为False,就会中止循环。

这样的判断条件,我们称为------边界条件

边界条件

while循环的边界条件,是指终止循环的那个判断条件。
边界条件为False,则中止循环。

(隐喻:跑圈的时候,条件为小于10圈就一直跑。直到跑到10圈,教练吹哨,就停止跑圈。)

理解了while循环的概念,来看看代码的语法格式。

同样是输出一个列表里面的所有元素,如何使用while循环来完成

while循环

nameList = ["Max","Tom","Jim","Ken","Kim"]
counter = 0
while counter < 5:
    print(nameList[counter])
    counter = counter + 1

代码的作用
这5行代码使用了while循环把列表的元素全部输出出来。

第3行使用while循环,判断Counter是否小于5。若是,就进入循环;若不是,程序就终止。

第4行,条件为True时,输出列表nameList中索引为Counter的元素;

第5行,在条件为True时,用Counter计数,继续回到第3行代码,不断循环,直到while循环判断为False,程序结束。

counter初始化
变量counter赋值0,进行初始化。

while
使用关键词while,表明我们要在这里开始执行"while循环"的代码结构。

边界条件
边界条件,如果该条件成立(True=真),就执行下面的缩进代码;

如果该条件不成立(False=假),就终止循环。

英文冒号:
一个冒号,循环语句的固定格式,表明接下来缩进的代码块,在每次边界条件为True的时候,都要执行。

四个空格
四个空格,循环缩进的固定格式,表明同样缩进的代码在每次边界条件为True的时候,都要执行。

循环内代码
缩进后的代码,是一个代码块,是循环中要执行的部分。

(while循环运行流程)

while标志着开始进入条件循环,判断这时的counter是否小于5,由于上面定义了counter初始化赋值为0,小于5满足条件,因此进入循环

在第一次循环中,输出了列表索引为0的元素Max

然后counter + 1 ,重新赋值给counter,也就是0+1 变为1

重新又判断一次,此时的counter是否小于5,由于counter刚刚修改为1,小于5满足条件,依旧进入循环,输出

列表索引为1的元素Tom

然后counter +1 重新赋值给counter,就变成了1+1 变为 2

重新又一次进行判断,满足条件后,继续进入循环,输出此时索引是counter的元素 Jim

然后counter + 1,再一次进入判断看是否满足条件

直到counter +1 之后,值变为5,进行判断时,5 < 5 不成立,返回False,就终止了这个循环,这就是while循环过程。

代码小结

通过如下格式在代码中使用while循环

小练习

(一)

sum= 0
counter= 0
while counter < 5:
    sum = sum + counter
    counter = counter + 1
    print(sum)

一段累加代码,输出的结果依次是0 1 3 6 10
sum是累加器,counter是计数器,都初始化为0,
然后进入while循环,sum和counter的值相加赋值给sum,
counter+1,输出sum的值,本次循环结束,进入下一循环。
直到counter小于5不成立,循环结束。

(二)

sum= 0
counter= 0
while counter < 5:
    sum = sum + counter
    counter = counter + 1
print(sum)

和上一段代码唯一不同之处在于print()语句所在的位置不一样。

上一段,在循环中输出,所以循环进行五次,就输出了五个值。

而本段代码中,print()在while循环之外,并且和while循环处于同一层级,循环结束以后才会执行print,输出最终的值

(三)

sum= 0
counter= 0
while counter < 5:
    counter = counter + 1
    sum = sum + counter
print(sum)

本段(三)和上段(二)的不同之处,在于累加器sum和计数器counter的位置。

本段代码中,counter先+1,sum再被赋值,所以在每一次循环中,counter都是先+1以后再与sum累加计算的,
当循环执行到第五次的时候,counter等于4,进入循环以后,counter自增等于5 ,sum等于15(1+2+3+4+5),不满足条件,循环结束,
输出sum的值为15。


for循环是有天然的边界条件------完成遍历。
但while循环是有可能一直运行的。只要边界条件为真,它就会一直执行下去。
比如图中代码就会永远执行,这种循环我们又叫做"死循环"。

死循环

死循环是一种循环类型, 当一个循环永远无法终止的时候,我们就说它是一个死循环。

死循环会一直运行下去。

如图,由于边界条件永远为True,因此,循环会一直进行下去,永远不会停止。

一般来说"死循环"是一个bug,它会导致程序一直无意义运行,我们在写代码的时候一定要尽量去避免。

图中,我们修改一下之前的代码,就不会进入死循环了。因为在执行完print()以后我们给tag变量赋值了False,此时while的判断条件为False,循环就结束了。

for循环和while循环区别

总结一下,从代码的执行结果来看,for循环和while循环,都可以实现相同的功能。

他们的区别在哪呢

第一个区别:
for循环 是在每一次循环的时候,按照从头到尾的顺序自动遍历,给变量name赋值列表中的元素;

while循环 是用一个计数器来索引列表,分别访问这个列表里面的每个元素。

第二个区别:
循环的终止条件不一样。

for循环的终止条件是遍历完这个列表;

while循环的终止条件是边界条件counter < 5,当边界条件为True的时候继续执行代码,为False的时候就终止执行。

简而言之,需要记住三条。

  1. for循环常用于处理列表内的每个元素。

  2. for循环有天然的边界条件,while循环没有,需要我们精心设计边界条件。

  3. 大多数时候,for循环和while循环可以互换使用。

小练习

number  = 100
while number >= 0:
    print(number)
    number = number - 1

这段代码实现了输出100以下的非负整数。
第1行给number赋值100;
第2行,执行while循环,判断number是否>=0,如果是,就执行循环内的语句。
第3行输出了当前的number。
第4行,number-1再赋值给number,得到新的number再次进入循环

赞(1)
未经允许不得转载:工具盒子 » Python基础 – while循环