上节课后留的思考题,完成的如何了?如果没有做出来,可以关注我的公众号【打酱油的白熊】,回复关键字【99乘法表】获取答案。
下面让我们开始本节课的学习,实现循环的另一种方式——while循环。
1、while循环
先来看下面这段关于while循环的代码。
a = 0
while a < 5:
a = a + 1
print(a)
运行这段代码,打印出的结果从上往下依次是【1】、【2】、【3】、【4】、【5】。
在while循环中,while后面跟的是一个条件,当条件被满足时,就会循环执行while内部的代码(while子句)。
在上面的代码中,只要【a<5】这个条件成立,就不停地执行循环语句,打印出a的值。当a=5时,条件不成立,循环结束。
while循环的格式和for循环一样,while语句后面要有英文的冒号,内部的子句要有缩进。
2、编程方法和一个案例
概念性的知识讲完了,下面开始实践。项目是通过while循环,来求出1至100中所有偶数的和。
通过这个项目,我希望能教给你编程方法,当面对一个项目时,应该以怎样的步骤进行操作。
简单地说有三个步骤:(1)确认目标 (2)分析过程 (3)代码实现
(1)确认目标
确认这个项目要求我们做什么,这个是大目标。上面那个例子中的大目标写的很清楚,是【求出1至100中所有偶数的和】。
光有大目标还不够,还要分解出小目标。本例可以分解为两个小目标,【找出1至100中的所有偶数】和【求和】。
(2)分析过程
确认了小目标后,就要分析实现它们需要用到python中的哪些知识点。
找出偶数需要用到if语句并配合偶数的特点(偶数除以2余数为0),找出1至100中的所有偶数需要用到循环语句(while/if),求和需要用到四则运算和循环的配合。
(3)代码实现
不要着急一下写出所有代码,代码通常是一部分一部分编写的,把每个小目标都完成后,组合起来就是一个大目标了。让我们一步步来看。
首先写找出偶数的代码【if i % 2 == 0:】,用到四则运算中的求余,余数为0时的i值为偶数。
然后再用循环找出所有的偶数,虽然用for循环实现更便捷,但既然本节课讲到while循环,就用while来实现。代码如下:
i = 100
while i > 0:
if i % 2 == 0:
i = i - 1
设置i的初始值是100,当i大于0时while循环会一直执行。通过if语句来挑选出偶数,每次挑选完成后i值减少1,循环直至i等于0时终止。
最后来实现求和。设置变量sum=0,每次挑选出的偶数通过【sum=sum+i】进行求和,最终打印出的sum值就是目标要求的【1至100中的所有偶数之和】。
i = 100
sum = 0
while i > 0:
if i % 2 == 0:
sum = sum + i
i = i - 1
print(sum)
3、for和while该如何选择
既然for和while都能实现循环,那当需要实现循环时,该如何选择呢?
选择标准很简单,就是看循环的次数是否确定。循环次数确定时用for循环更方便,循环次数不确定时用while循环。
fou循环就像是从箱子中取物体,每次取一个,都取出后结束。而while循环关注的是条件是否满足,如果满足就会一直执行下去。
比如上面的例子,已知需要从1至100循环100次,用for循环更方便。不需要定义变量i=100,直接通过【for i in range(1,101):】即可循环100次。代码如下:
sum = 0
for i in range(1,101):
if i % 2 == 0:
sum = sum + i
print(sum)
而如果不知道要循环多少次,只知道要求满足某个条件时才会循环,就用while语句。
本节课就到这里,上面的知识点你学会了吗?检验下你的学习成果,尝试用while循环写出1+2+3+...+100的求和结果。