循环语句—Python编程从入门到精通(5)

发表于:2018-12-24 11:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶维忠    来源:51Testing软件测试网原创

分享:
  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软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号