Python学习之路7—while循环
最近一部热剧《三十而已》中完美女人顾佳的老公许幻山出轨了,全网等待顾佳离婚。爽看正宫手撕小三,然而许放炮就只知道说“老婆,我错了”。
可许放炮道歉一两句肯定没诚意,最起码道歉一万句(网友们肯定仍是不买账的)。
可见,循环的作用:重复。
1、while 的语法
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码2
......
1.1真正实战下,需求是:道歉5次,顾佳就能原谅了他。
i = 0
while i < 5:
print("对不起")
i += 1
print("原谅你了")
这里有个点要注意的是:代表循环次数的一般用 i 或 j。 一般初始都从0开始。
代码执行后,可看下成果是:
对不起
对不起
对不起
对不起
对不起
原谅你了
当然,我们在while的循环里面,即重复代码执行里,也可以加上print输出,可以看下效果
i = 0
while i < 5:
print("对不起")
i += 1
print("原谅你了")
print("原谅你了")
对不起
原谅你了
对不起
原谅你了
对不起
原谅你了
对不起
原谅你了
对不起
原谅你了
原谅你了
由此可见,在循环里面输出的,是直接跟在循环后面的,也就是每一个循环都有一个结果回答。
前面学习了简单的循环,升级点,做一个循环累加的数学题,学生时代就比较头疼这种数学题了…
1.2 需求是:计算1-100数字的累加和 1+2+3+4+5+6+7+8+…+100 = 结果
第一步,先分析需求:
- 准备变量
- 把前面的变量求和
- 循环做加法
- 打印结果
i = 1
result = 0
while i <= 100:
result = result + i
i += 1
print(result)
最后的输出结果是5050。
1.3 需求是:计算1-100以内偶数累加和
在上一个例子中学习了所有数的累加,面对偶数累加,我自己做了一个很简单的运算,直接使用偶数去相加。
i = 0
result = 0
while i <= 100:
result = result + i
i += 2
print(result)
#最后输出的是2550
我这只适用于简单的这种偶数相加,若每个数字不连贯,我这方法就不行了,所以科学的还是要先判断偶数,再进行相加。
偶数:除以2余数等于0就是偶数。
i = 0
result = 0
while i <= 100:
if i % 2 == 0:
result = result + i
i += 1
print(result)
实际的操作中,我把result这一步放在了while循环里,导致出现了错误。而按照步骤,我应该先把if条件执行完并给出结果了,再去让 i 进行相加。
2、了解break 和continue
break 和 continue 是循环中满足一定条件退出循环的两种不同方式。
举个栗子:一共吃6颗板栗,吃完1个继续吃第2个、第3个…
情形一:吃完第4颗的时候就不想吃了,那第5、6这两颗就剩下了,就不吃了。这里的break 直接中断循环流程,即终止循环。
情形二:吃到第4颗的时候板栗有虫子,那就把第4颗丢掉,继续吃那第5、6的两颗。这里的continue 是退出当前一次循环继而执行下一次的循环。
正常的持续吃板栗,应该是这样的:
i = 1
while i <= 6:
print(f"吃了第{i}颗板栗")
i += 1
吃了第1颗板栗
吃了第2颗板栗
吃了第3颗板栗
吃了第4颗板栗
吃了第5颗板栗
吃了第6颗板栗
2.1 break
一共吃6颗板栗,吃完1个继续吃第2个、第3个…
吃完第4颗的时候就不想吃了,那第5、6这两颗就剩下了,就不吃了。
i = 1
while i <= 6:
if i == 5:
print(f"吃饱了,不吃了")
break
print(f"吃了第{i}颗板栗")
i += 1
最后执行出来的是:
吃了第1颗板栗
吃了第2颗板栗
吃了第3颗板栗
吃了第4颗板栗
吃饱了,不吃了
在这个简单的案例中,我还是操作错了,把”i += 1“ 给放到了if判断里面去了,导致了程序死循环的状态,这个还是要谨慎小心些。
2.2 continue
一共吃6颗板栗,吃完1个继续吃第2个、第3个…
吃到第4颗的时候板栗有虫子,那就把第4颗丢掉,继续吃那第5、6的两颗。
i = 1
while i <= 6:
if i == 4:
print(f"有虫子,这颗不吃了")
i += 1
continue
print(f"吃了第{i}颗板栗")
i += 1
执行之后:
吃了第2颗板栗
吃了第3颗板栗
有虫子,这颗不吃了
吃了第5颗板栗
吃了第6颗板栗
在学习continue 的时候,我又犯了跟break 同样的错误,代码操作错误导致程序无限循环消耗电脑内存。
- 第一次,if条件没有加上变量 i += 1
- 第二次,if条件的程序对了,但是while循环里,我又没有加上i += 1
以上的骚操作,算是个初初初级程序员的错误示范,哈哈哈哈
以上就是本次的学习,下次继续。
我是小贼猫,产品经理一枚。今年的Flag是拿下Python。平时自己学习的东西都会分享在公众号上,喜欢的人可关注公众号:爱偷懒的小贼猫(xiaodoubi_svip)