6.2、使用while循环语句
在Python程序中,除了for循环语句以外,while语句也是十分重要的循环语句,其特点和for语句十分类似。接下来将详细讲解使用while循环语句的基本知识。
6.2.1、基本的while循环语句
在Python程序中,while语句用于循环执行某段程序,以处理需要重复处理的相同任务。在Python语言中,虽然绝大多数的循环结构都是用for循环语句来完成的,但是while循环语句也可以完成for语句的功能,只不过不如for循环语句简单明了。
在Python程序中,while循环语句主要用于构建比较特别的循环。while循环语句最大的特点,就是不知道循环多少次使用它,当不知道语句块或者语句需要重复多少次时,使用while语句是最好的选择。当while的表达式是真时,while语句重复执行一条语句或者语句块。使用while语句的基本格式如下所示。
while condition statements |
在上述格式中,当condition为真时将循环执行后面的执行语句,一直到条件为假时再退出循环。如果第一次条件表达式就是假,那么while循环将被忽略;如果条件表达式一直为真,那么while循环将一直执行。也就是说,while循环中的执行语句部分会一直循环执行,直到当条件为假时才退出循环,并执行循环体后面的语句。while循环语句最常用在计数循环中。while循环语句的执行流程如图6-6所示。
下面的实例代码演示了使用while循环语句的过程。
实例6-5 循环输出整数0到8
源码路径 daima\6\6-5
实例文件while.py的具体实现代码如下所示。
count = 0 #设置count的初始值为0 while (count < 9): #如果count小于9则执行下面的while循环 print ('The count is:', count) count = count + 1 #每次 while循环count值递增1 print ("Good bye!") |
执行后的效果如图6-7所示。
6.2.2、使用while…else循环语句
和使用for…else循环语句一样,在Python程序中也可以使用while…else循环语句,具体语法格式如下所示。
while <条件>: <语句1> else: <语句2> #如果循环未被break终止,则执行 |
在上述语法格式中,与for循环不同的是,while语句只有在测试条件为假时才会停止。在while语句的循环体中一定要包含改变测试条件的语句,以保证循环能够结束,以避免死循环的出现。while语句包含与if语句相同的条件测试语句:如果条件为真,就执行循环体;如果条件为假,则终止循环。while语句也有一个可选的else语句块,它的作用与for循环中的else语句块一样。如果while循环不是由break语句终止的,则会执行else语句块中的语句。而continue语句也可以用于while循环中,其作用是跳过continue后的语句,提前进入下一个循环。
下面的实例代码演示了使用while…else循环语句的过程。
实例6-6 使用while…else循环语句
源码路径 daima\6\6-6
实例文件else.py的具体实现代码如下所示。
count = 0 #设置count的初始值为0 while count < 5: #如果count值小于5则执行循环 print (count, "小于5") #如果count值小于5则输出小于5 count = count + 1 #每次循环,count值加1 else: #如果count值大于等于5 print (count, 大于等于5) #则输出大于等于5 |
执行后的效果如图6-8所示。
6.2.3、死循环问题
死循环也称为无限循环,是指这个循环将一直执行下去。在Python程序中,while循环语句不像for循环语句那样可以遍历某一个对象的集合。在使用while语句构造循环语句时,最容易出现的问题就是测试条件永远为真,导致死循环。因此在使用while循环时应仔细检查while语句的测试条件,避免出现死循环。
下面的实例代码演示了使用while循环语句的死循环问题。
实例6-7 while循环语句的死循环问题
源码路径 daima\6\6-7
实例文件wuxian.py的具体实现代码如下所示。
var = 1 #设置var的初始值为1 #下面的代码当var为1时执行循环,实际上var的值确实为1 while var == 1 : #所以该条件永远为true,循环将无限执行下去 num = input("亲,请输入一个整数,谢谢!")**/* #提示输入一个整数 print ("亲,您输入的是:", num) #显示一个整数 print ("再见,Good bye!") |
在上述代码中,因为循环条件变量var的值永远为1,所以该条件永远为true,造成循环无限执行下去,这就形成了死循环。所以执行后将一直提示用户输入一个整数,在用户输入一个整数后还继续无限次数地提示用户输入一个整数,如图6-9所示。
使用"Ctrl+C"组合键可以中断上述死循环,中断后的效果如图6-10所示。
6.2.4、使用while循环嵌套语句
和使用for循环嵌套语句一样,在Python程序中也可以使用while循环嵌套语句,具体语法格式如下所示。
while expression: while condition: statement(s) statement(s) |
另外,还可以在循环体内嵌入其他的循环体,例如在while循环中可以嵌入for循环。反之,也可以在for循环中嵌入while循环。
下面的实例演示了使用while循环嵌套语句的过程。
实例6-8 输出100之内的素数
源码路径 daima\6\6-8
实例文件qiantao.py的具体实现代码如下所示。
i = 2 #设置i的初始值为2 while(i < 100): #如果i的值小于100则进行循环 j = 2 #设置j的初始值为2 while(j <= (i/j)): #如果j的值小于等于"i/j"则进行循环 if not(i%j): break #如果能整除则用break停止运行 j = j + 1 #将j的值加1 if (j > i/j) : print (i, " 是素数") #如果"j > i/j"则输出i的值 i = i + 1 #循环输出素数i的值 print ("谢谢使用,Good bye!") |
执行后的效果如图6-11所示。
相关阅读:
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。