欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习之路7—while循环

程序员文章站 2022-07-14 23:35:58
...

最近一部热剧《三十而已》中完美女人顾佳的老公许幻山出轨了,全网等待顾佳离婚。爽看正宫手撕小三,然而许放炮就只知道说“老婆,我错了”。

可许放炮道歉一两句肯定没诚意,最起码道歉一万句(网友们肯定仍是不买账的)。

可见,循环的作用:重复。

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)

相关标签: Python python