使用 while 进行循环
while 是 Python 中最简单的循环机制,翻译成中文是 “当…的时候”,这个条件成立在一段范围或时间间隔内,从而在这段时间间隔内让 Python 做好多事情。我们用个例子来演示一下:
>>> cnt = 1
>>> while cnt <= 5:
... print(cnt)
... cnt += 1
...
1
2
3
4
5
上面的例子执行的是从 1 打印到 5 的简单循环。首先是将变量 cnt 的值赋为 1, while 循环比较 cnt 的值和 5 的大小关系,如果 cnt 小于等于 5 的话继续执行。在循环的内部打印 cnt 的值,然后使用 cnt += 1 对 cnt 进行自增操作,返回到循环的开始位置,继续比较 cnt 和 5 的大小关系。现在 cnt 变量的值为 2,因此 while 循环内部的代码会被再次执行,cnt 的值会变为 3,在 cnt 从 5 自增到 6 之前一直进行,然后下次判断时, cnt 小于等于 5 的条件不满足,while 循环结束,Python 跳到循环下面的代码。
使用 break 跳出循环
如果你想让循环在某一条件下停止,但是不确定在哪次循环跳出,可以在无限循环中声明 break 语句,其含义就是要在这个地方终端循环,跳出循环体。下面用个例子简要说明一下:
>>> a = 6
>>> while a:
... if a % 2 ==0:
... break
... else:
... print("{} is odd number".format(a))
... a -= 1
...
>>> print("{} is even number".format(a))
a = 6 的时候,执行循环体中的 break,跳出循环,执行最后的打印语句,得到结果:
6 is even number
如果 a = 7 则要执行 else 里面的 print() ,然后 a -= 1,即 a = a - 1 = 6,循环就又再执行一次,又 break 了,得到结果:
7 is odd number
6 is even number
使用 continue 跳到循环开始
有时候我们不想结束整个循环,仅仅想跳到下一轮循环的开始,这时候就轮到 continue 善良登场了。continue 是从当前位置跳到循环体的最后一行的后面,并不执行最后一行。请看下面的例子:
>>> a = 7
>>> while a:
... if a % 2 == 0:
... a -= 1
... continue
... else:
... print("{} is odd number".format(a))
... a -= 1
...
上面的例子,如果是偶数,就返回循环的开始;如果是奇数,就打印出来。
7 is odd number
5 is odd number
3 is odd number
1 is odd number
其实,无论是 break 还是 continue,能少用尽量少用,尽量将条件什么的在循环之前就做好,不要在循环里跳来跳去的,这样不仅代码的可读性变差,有时候自己也容易蒙圈。
while…else
如果 while 循环没有使用 break 跳出,即 while 循环正常结束,程序将进入到可选的 else 段。while…else 有点类似于 if…else,这里需要知道的是一遇到 else,就意味着已经不在 while 循环内。请看下面的例子:
>>> cnt = 0
>>> while cnt < 3:
... print(cnt,' is less than 3')
... cnt += 1
... else:
... print(cnt,' is not less than 3')
...
上述代码的执行结果如下:
0 is less than 3
1 is less than 3
2 is less than 3
3 is not less than 3
是不是看了例子觉得很容易呢?