在代码中有的时候我们需要程序不断地重复执行某一种操作,例如我们需要不停的判断某一列表中存放的数据是否大于0,这个时候就需要使用循环控制语句。
程序的循环结构允许多次执行相同的代码块,如下图所示:
在循环结构中,程序的执行流程为:
判断循环条件
如果为真,则执行循环中的代码块;执行后跳转到步骤1,重复第1步和第2步.
如果为假,则循环结束
Python提供了while语句用于循环控制,语法如下:
while条件:代码块当循环条件为真时,程序会反复执行代码块,直至循环条件为假。
编写程序while-loop.py,如下所示:
在第2行,判断变量number是否小于等于3,执行4次条件判断
第1次条件判断时,number等于1,打印1,将number递增为2
第2次条件判断时,number等于2,打印2,将number递增为3
第3次条件判断时,number等于3,打印3,将number递增为4
第4次条件判断时,number等于4,循环结束,执行第5行,打印END
程序输出结果为:
123END2.for循环语句2.1功能与语法Python提供了for语句用于遍历序列中的元素,语法如下所示:
for循环变量in序列:代码块假设序列中包含有N个元素:A1、A2、…、An,使用for语句遍历该序列的过程如下:
for语句中的代码块会执行N次
第1次执行时,循环变量的值为A1
第2次执行时,循环变量的值为A2
…
第N次执行时,循环变量的值为An
for语句用于遍历序列中的元素,这里所讲的序列是广义的,可以是:
列表
元组
集合
range对象
wwwimooccom2.5遍历range对象Python中range对象表示一定范围的整数序列,它有两种形式:
range(number)表示区间[0,number)内的整数序列,该区间从0开始、到number结束,不包含number。
range(start,end)表示区间[start,end)内的整数序列,该区间从start开始、到end结束,不包含end。
例子:遍历range(3)
foriteminrange():print(item)range(3)表示0、1、2这三个整数构成的序列,程序的输出结果如下:
012例子:遍历range(1,3)
foriteminrange(,):print(item)range(1,3)表示1、2这两个整数构成的序列,程序的输出结果如下:
123.break语句3.1功能与语法在通常的循环中,当条件为假时,循环才会终止,有些情况下,希望能够提前从循环中退出。Python提供了break语句用于从循环中退出,如下图所示:
当条件为假时,循环结束,程序流程到达出口
当条件为真时,执行条件为真的分支中的代码块
如果代码块中包含有break语句
break语句会中断当前的循环执行流程,直接跳转到程序的出口
编写程序检测number是否为素数,将检测结果保存在变量is_prime中,如下所示:
number=is_prime=Truefactor=whilefactor 在第2行,设置检测结果is_prime初值为True 在第3行,设置循环变量factor为2 在第4行,判断循环变量factor是否小于number 在第9行,循环变量factor自增1 在第6行,判断factor是否是number的因子 如果factor是number的因子,则number不是素数 在第6行,将结果记录在变量is_prime中 在第7行,已经检测到number不是素数,因此可以提前退出循环 运行程序,输出结果如下: 23False4.continue语句4.1功能与语法在通常的循环中,循环块中的语句是顺序执行的,有些情况下,希望能够跳过循环块中的剩余语句。Python提供了continue语句用于跳过循环块中的剩余语句,如下图所示: 如果代码块中包含有continue语句 break语句会中断当前的循环执行流程,直接跳转到循环条件处 编写程序计算列表中正数的累加和,代码如下: list1=[,,,,,]list1_sum=foriinlist1:ifi%!=:continue list1_sum+=iprint(list1_sum)在第1,2行,设定一个含有六个元素的列表,并定义一个结果变量; 在第3行,使用for循环遍历这个列表; 在第4行,判断元素是否是偶数,不是偶数则使用continue关键字跳出本次循环 在第6行,能够执行到这里说明元素是偶数,则追加到结果变量上。 程序运行的输出结果如下: 125.else语句5.1在while循环中使用else语句while语句中提供了else语句,语法如下: while条件:代码块else:代码块当循环条件为真时,执行代码块1 当循环条件为假时,执行代码块2 编写程序while-else.py,如下所示: 123Attheend:45.2在for循环中使用else语句for语句中提供了else语句,语法如下: for变量in序列:代码块else:代码块当循环条件为真时,执行代码块1 编写程序for-else.py,如下所示: 123Attheend:35.3一个有意义的例子else语句通常用于当循环非正常退出的场景中,一个有意义的例子如下: number=factor=whilefactor 在第1行,设置number为9,程序检测number是否为素数 在第2行,设置循环变量factor为2 在第3行,判断循环变量factor是否小于number 在第8行,循环变量factor自增1 在第5行,判断factor是否是number的因子 在第7行,提前退出循环 在第9行,依次测试2、3、4、5、6、7、8是否为number的因子 如果都不是number的因子,则说明number是素数 在第10行,将结果记录在变量is_prime中 23False上述的例子,使用for循环改写,如下所示: number=forfactorinrange(,number):print(factor)ifnumber%factor==:is_prime=Falsebreakelse:is_prime=Trueprint(is_prime)运行程序,输出相同的结果,如下所示: 23False6.小结Python中的循环控制语句只有for和While两种,不同于C或者Java等其他编程语言还有do…while。循环控制语句和分级结构语句一样在工作中经常会用到。大家多想想在编程中有什么地方是需要用到循环控制语句的,想到之后不妨用代码实现一下。