Python学习18 : 条件循环(while循环)
for循环就像是排队办事,一个个进入,轮流办理,每个人经历的流程都一样。
在for循环,一次遍历就是一次循环,因此我们知道会经历过几次循环。
在另一种情况下,我们并不关心循环几次,只在意循环什么时候结束。
这样的循环逻辑,就对应Python中的条件循环(也叫while循环)。
条件循环,又称while循环,以判断条件是否成立,来决定是否执行循环内的代码。当判断为真时,代码会循环执行,当判断为假时则终止循环。
长跑2000米时,判断跑够5圈才能停止跑:在没跑够5圈时,就要一直跑,直到跑够了5圈,就结束。
边界条件(Boundary Conditions)while循环的边界条件,是指终止循环的那个判断条件。边界条件为False,则中止循环。
好象跑圈的时候,条件为小于10圈就一直跑。直到跑到10圈,教练吹哨,就停止跑圈。
nameList = ["Max","Tom","Jim","Ken","Kim"]
counter = 0
while counter < 3:
print(nameList[counter])
counter = counter + 1
代码使用了while循环把列表的元素全部输出出来。
第3行使用while循环,判断Counter是否小于3。若是,就进入循环;若不是,程序就终止。
第4行,条件为True时,输出列表nameList中索引为Counter的元素;
第5行,在条件为True时,用Counter计数,继续回到第3行代码,不断循环,直到while循环判断为False,程序结束。
number =100
while number >=0:
print(number)
number = number -1
输出为100,99,98,97。。。。。。3,2,1,0。这些小于100的整数。
sum=0
counter=0
while counter <5:
sum = sum + counter
counter = counter +1
print(sum)
逐行解释代码:
1. `sum = 0`:初始化一个变量`sum`,用来存储累加的结果,初始值为0。
2. `counter = 0`:初始化一个变量`counter`,用来作为循环计数器,初始值也为0。
3. `while counter < 5:`:这是一个`while`循环的条件,只要`counter`的值小于5,循环就会继续执行。
4. `sum = sum + counter`:在循环体内部,将`counter`的当前值加到`sum`上,更新`sum`的值。
5. `counter = counter + 1`:将`counter`的值增加1,为下一次循环做准备。
6. `print(sum)`:打印当前`sum`的值。
循环会执行5次,因为`counter`从0开始,每次循环加1,直到`counter`等于5时,条件`counter < 5`不再成立,循环结束。
下面是循环执行的详细过程和打印结果:
- 初始时:`sum = 0`, `counter = 0`
- 第1次循环:`counter`为0,`sum`更新为`0 + 0 = 0`,打印`0`
- 第2次循环:`counter`为1,`sum`更新为`0 + 1 = 1`,打印`1`
- 第3次循环:`counter`为2,`sum`更新为`1 + 2 = 3`,打印`3`
- 第4次循环:`counter`为3,`sum`更新为`3 + 3 = 6`,打印`6`
- 第5次循环:`counter`为4,`sum`更新为`6 + 4 = 10`,打印`10`
循环结束后,`sum`的最终值是10,但这个值不会被打印,因为打印语句在循环体内,循环结束后就不再执行。
所以,程序的输出结果是:
0
1
3
6
10
sum= 0
counter= 0
while counter < 5:
sum = sum + counter
counter = counter + 1
print(sum)
输出的只是一个数字10。解释如下:这道题和上一道题唯一不同之处在于print()语句所在的位置不一样。上一题,在循环中输出,所以循环进行五次,就输出了五个值。而本题中,print()在while循环之外,并且和while循环处于同一层级,循环结束以后才会执行print,输出最终的值。
死循环(Infinite Loop)
在编程中,一个靠自身控制无法终止的程序称为“死循环”。死循环是一种循环类型, 当一个循环永远无法终止 的时候,我们就说它是一个死循环。比喻:死循环就像是在一个没有出口的迷宫一直转圈,永远都跑不出这个迷宫。一般来说“死循环”是一个bug,它会导致程序一直无意义运行,我们在写代码的时候一定要尽量去避免。
for循环和while循环的区别在哪呢?
第一个区别:for循环是在每一次循环的时候,按照从头到尾的顺序自动遍历,给变量name赋值列表中的元素;而while循环是用一个计数器来索引列表,分别访问这个列表里面的每个元素。
第二个区别:循环的终止条件不一样。for循环的终止条件是遍历完这个列表;while循环的终止条件是边界条件,counter<5,当边界条件为True的时候继续执行代码,为False的时候就终止执行。
简而言之,需要记住三条。
1. for循环常用于处理列表内的每个元素。
2. for循环有天然的边界条件,while循环没有,需要我们精心设计边界条件。
3. 大多数时候,for循环和while循环可以互换使用。