8.5 while语句

Python的while是本章我们遇到的第一个循环语句。事实它上是一个条件循环语句。与if声明相比,如果if后的条件为真,就会执行一次相应的代码块。而while中的代码块会一直循环执行,直到循环条件不再为真。

8.5.1 一般语法

while循环的语法如下:

8.5 while语句 - 图1

while循环的suite_to_repeat子句会一直循环执行,直到expression值为布尔假。这种类型的循环机制常常用在计数循环中,请参见下节中例子。

8.5.2 计数循环

8.5 while语句 - 图2

这里的代码块里包含了print和自增语句,它们被重复执行,直到count不再小于9。索引count在每次迭代时被打印出来然后自增1。如果在Python解释器中输入这些代码我们将得到这样的结果:

8.5 while语句 - 图3

8.5.3 无限循环

你必须小心地使用while循环,因为有可能condition永远不会为布尔假。这样一来循环就永远不会结束。这些“无限”的循环不一定是坏事,许多通讯服务器的客户端/服务器系统就是通过它来工作的。这取决于循环是否需要一直执行下去,如果不是,那么这个循环是否会结束;也就是说,条件表达式会不会计算后得到布尔假?

8.5 while语句 - 图4

例如上边的代码就是故意被设置为无限循环的,因为True无论如何都不会变成False。这是因为服务器代码是用来等待客户端(可能通过网络)来连接的。这些客户端向服务器发送请求,服务器处理请求。

请求被处理后,服务器将向客户端返回数据,而此时客户端可能断开连接或是发送另一个请求。对于服务器而言它已经完成了对这个客户端的任务,它会返回最外层循环等待下一个连接。在第16章和第17章里你将了解关于如何处理客户端/服务器的更多信息。