python 自学 while 循环_python3 while循环
讲到while循环就不得不把for循环一起来讲:
从使用上;
1;for循环针对集合中的每一个元素都执行一个代码块。说明for的使用是在一个范围里的
2;while循环则不断运行,直到指定的条件不满足为止。一定要设置一个条件否则会一直循环下去,(有些情况下就是需要不断循环,比如;服务器运行)
这里一定会存在一个问题:就是什么时候使用for,什么时候使用while。
我的理解是:当你明确知道要在指定的范围里操作的时候用for。其他情况用while。
for和while能做相同的事 我们来看看:
计算1-100所有数的和,for来实现,观察计算机到底是怎么通过我们设计的程序来运行的。
b = 0
for i in range(1,101):
# 思路:直接打印print(i),输出的是1,2,3...100
# 我们要的是求所有数相加的和
# 所以每次相加需要有一个中间值,这个中间值就是b=0 ,为什么是从0开始?这个你可以试试从1开始结果是什么。
# 步骤如下;
# 第一次 i循环到第一个数字:1,b=b+i,b=0+1 (这个时候b是0)结果;b=1
# 第二次 i循环到第二个数字;2,b=b+i,b=1+2(这个时候b是1)结果:b=3
# 第三次 i循环到第三个数字;3,b=b+i,b=3+3(这个时候b是1)结果:b=6
# 我们来验证一下,看看第三次的6是不是等于1+2+3,1+2+3=6,结果没有问题,证明这样计算是正确的。
b+=i
# 为什么print(b) 不在循环体内,如果在的话,那每次打印的就是,每次的结果,而我们要的只是最后一次结果。
# 放在循环体外就是打印最后一次结果。
print(b)
不用死记硬背中间所谓的结构,只要上手敲代码,自己多尝试就能明白为什么这样写?为什么要缩进?为什么要在开头写一个中间值b。
计算1-100所有数的和,while 来实现:
# a = 1
# while a <= 100:
# a+=1
# 我写while的时候会这样写,先把结构写完,这里a为什么不是从0开始,因为计算的是1-100,而不是0-100这是有区别的,
# 先给一定一个初始化值a=1,再确定他的范围while a<= 100 ,最后给他加一个条件不然就死循环了。a+=1
# 接下来我就要在中间写代码了,也就是执行的过程。
a = 1
b = 0
while a<=100:
# 如果直接打印print(a),会出现 1,2,3...100.但我们是要求每个数的和,这个跟for的思路是一样的。
# 所以我们需要一个中间值。b,这个b还是从0开始吗?
# 我们来模拟一下
# 第一次 a循环到第一个数字:1,b=b+i,b=0+1 (这个时候b是0)结果;b=1
# 第二次 a循环到第二个数字;2,b=b+i,b=1+2(这个时候b是1)结果:b=3
# 第三次 a循环到第三个数字;3,b=b+i,b=3+3(这个时候b是1)结果:b=6
# 我们来验证一下,看看第三次的6是不是等于1+2+3,1+2+3=6,结果没有问题,证明这样计算是正确的。
b+=a
a+=1
# 结尾跟for一样,求的是最后的结果,不是过程。
print(b)
我在学习for 和 while的时候,直接看书概念是很模糊的,需要上手去把每一个过程写出来(z这个过程就是 添加注释#这个真的非常重要!!!),这样就懂得计算机到底是怎么通过设计好的代码去计算了,别看真正的代码只有(for 4行,while 6行)并不多,但其中的原理必须弄清楚,否则到后面做更复杂的计算时一定会懵。
7.2.2,使用标志,让用户选择何时退出,这个非常重要还请认真阅读。
咱们改进一下吧,让用户只要输入的句子里包含 退出 程序就退出吧,当然这个词是退出,而不能是退XX出XX什么的。
7.2.4-7.2.5 break 和 continue
定义: break,用于控制程序的流程,比如;控制那些代码行将执行,那些代码行不执行。
定义;continue,返回循环的开头,并根据条件测试结果,决定是否继续执行循环。
for循环+continue的例子,要求是:遇见榴莲就略过打印其他水果:
while循环+continue 容易错的一个例子:
这是一个死循环~偶尔买噶的。。。。
我们来改进一下 让他不死循环也能按要求操作。
所以,while一定需要初始值,一定需要结束的条件。这个条件的位置不一定是最下面
for循环+break的例子,要求是:遇见榴莲就停止程序:
while循环+break的例子:
我个人在实际使用的时候发现标志,比break 和 continue 好用,看每个人,这里只需要明白2者的不同即可,一个是跳出当前循环体 一个是根据条件判断返回最初的循环体。
留一道小题目:请用while循环分别打印99乘法口诀表;输出的结果要求是下图的样子:
for循环做的99表在我之前的链接里有:for的嵌套99乘法表
如果你觉得文章的知识有用可以收藏,分享或转发~