无限循环:
由条件控制的循环运行方式。
语法格式如下:
while <条件>:
<语句块>
以上格式中的while关键字和冒号分别标识while语句的起始和结束,循环条件与while关键字以空格分隔,语句块通过缩进与while语句产生关联。
执行while语句时,若循环条件的值为True,则执行循环中的语句块,执行完语句块后再次判断循环条件,如此往复,直至循环条件的值为false时循环终止,执行循环之后的代码。while语句的执行流程如图如下:
根据这个条件来进行循环,如果这个条件成立,那么下面的语句就会被执行,执行之后再次判断条件,如果条件还是成立,她就会继续再执行下面的语句,再回来判断循环。
反复执行语句块,直到条件不满足时结束。
代码示例一如下所示:
a=3 while a>0: a=a-1 print(a)
运行界面如下:
代码示例二如下所示:
i=1 result=0 while i<=10: result+=i #result=result+i i+=1 #i=i+1 print(result)
以上示例中变量i是循环因子,其初始值为1,会随循环次数增加;变量result是所求的和,其初始值为0。首次执行while循环时,因为i<=10的值为True,所以会执行循环中的代码段,使result的值由0变为0+1,i的值由1变为2;再次判断i<=10,如此往复,直至i的值变为11时,i<=10的值变为False,循环结束,执行循环之后的打印语句,输出result的值。
运行界面如下:
循环控制保留字:
break和continue
break跳出并结束当前整个循环,执行循环后的语句
continue结束当次循环继续执行后续次数循环。
break和continue可以与for和while循环搭配使用
continue的含义是指在当次循环体执行的时候,如果遇到了continue保留字,那么当代循环就结束去做下一次循环。
break的含义是指如果一旦遇到了这个保留字整个循环结束。
break示例代码如下:
for word in "Python": if word=='o': break print(word,end=" ")
遍历这个字符串python,如果这个字符串中出现了o,则停止打印字符串,跳出整个循环,即结束了循环。
运行界面如下:
continue示例代码如下:
for word in "Python": if word=='o': continue print(word,end=" ")
遍历这个字符串,如果这个字符串中出现了o,不打印这个o,否则打印其他的所有字符出来。
运行界面如下:
循环嵌套:
循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按照不同的循环语句可以分为while循环嵌套和for循环嵌套。
while循环嵌套:
while循环嵌套是指while语句中嵌套while或for语句。
格式一如下所示:
while 循环条件1: #外层循环
代码段1
while 循环条件2: #内层循环
代码段2
执行while循环嵌套时,若外层循环的循环条件1的值为True,则执行代码段1,并对内层循环的循环条件2进行判断:若循环条件2的值为True则执行代码段2,若其值为False则结束内层循环。内层循环执行完毕后继续判断外层循环的循环条件1,如此往复,直至循环条件1的值为False时结束外层循环。
代码示例如下:
i=1 while i<6: j=0 while j<i: print("*",end="") j+=1 print() i+=1
以上示例的变量i代表图形的行数,变量j代表每行“*”的数量。需要注意的是,以上程序打印的“*”只需要换行一次,因此代码在内层循环中修改了print()函数的结束符(通过代码 print("*",end="")将end参数默认的结束符'\n'替换为空格符。
运行代码如下:
格式二如下:
while 循环条件1: #外层循环
代码段1
for 循环变量 in 遍历结构 #内层循环
代码段2
代码示例如下:
i=1 while i<6: j=0 for j in '012345': print("*",end="") print(j)
首先对于while循环进行判断条件,i的初始值为1,条件为True,进行for循环,将字符串‘012345’里面的每一个字符进行遍历循环,逐一输出,同时输出j.
运行界面如下:
for循环嵌套:
for循环嵌套是指for语句中嵌套while或for语句。
格式一如下所示:
for 循环变量 in 遍历结构: #外层循环
代码段1
for 循环变量 in 遍历结构:#内层循环
代码段2
执行for循环嵌套时,程序首先会访问外层循环中循环变量的首个元素、执行代码段1、访问内层循环中循环变量的首个元素、执行代码段2,然后访问内层循环的下一个元素、执行代码段2,如此往复,直至访问完内层循环的循环变量后结束内层循环,转而继续访问外层循环中的下一个元素,访问完外层循环的循环变量后结束外层循环。因此,外层循环每执行一次,都会执行一轮内层循环。
代码示例如下:
for i in range(1,6): for j in range(i): print("*",end='') print()
运行界面:
格式二如下:
for 循环变量 in 遍历结构 #外层循环
代码段1
while 循环条件1: #外层循环
代码段2
代码如下所示:
for i in range(5): j=1 while i>j: print("*",end='') j+=1 print() i+=1
首先执行外层循环for循环,range(5)即为从0开始,然后执行内层循环,i=0,进行判断后,i的值不大于j的值,即条件为false,直接输出即可。然后i进行加1操作,i=1,同时还是false,然后输出,循环往复,直到全部输出即可。
运行界面如下:
在循环嵌套中,如果使用了break语句,程序在执行到break语句时会结束本层循环。即break仅跳出当前最内侧循环。
代码示例如下:
S='PYTHON' while S!="": for c in S: if c=='T': break print(c,end='') S=S[:-1]
运行界面如下:
循环的高级用法:
循环的扩展
循环与else
格式如下:
for <循环变量> in <遍历循环>:
<语句块1>
else:
<语句块2>
当循环没有被break语句退出时,执行else语句块。
else语句块作为正常完成循环的奖励。
这是else的用法与异常处理中else用法相似。
代码示例如下:
for c in "PYTHON": if c=='T': continue print(c,end="") else: print("正常退出")
运行界面如下:
否则代码示例如下:
for c in "PYTHON": if c=='T': break print(c,end="") else: print("正常退出")
运行界面如下: