值得收藏!16段代码入门Python循环语句( 三 )


03 break、continue与pass在前两节中,已经介绍了Python中的两种循环语句 。循环语句中还可以嵌入break、continue和pass语句,以灵活地改变流向,实现更多功能 。
1. break
在Python中,break语句用于终止循环语句的执行 。使用该语句时,即使循环条件判断为真,或序列未被完全递归,循环语句也会被立刻停止 。
break语句一般配合条件判断使用,因为程序的终止必须是在某一条件被满足时执行 。break语句在for循环和while循环中的使用如代码清单8所示 。

  • 代码清单8:break语句的使用
# break语句用于for循环string = "Python"for i in string:# 遍历至string中的字符n时,不再执行else代码块 if i == 'n': break else: print("letter:{}". format(i)) 输出结果:
letter:Pletter:yletter:tletter:hletter:o # break语句用于while循环counts = 0while True: print(counts) counts += 1# 满足counts等于3时跳出循环,不再进入循环体 if counts == 3:break输出结果:
012从代码清单8可以看到,break语句用于for循环和while循环是有区别的 。用于for循环时,只终止遍历中某一次的循环体执行;用于while循环时,整个循环被终止 。
break只终止本层循环,如有多层嵌套的循环,在其中一层循环中写入break,只在这层循环中生效,程序将跳到上一层循环中继续运行,如代码清单9所示 。
  • 代码清单9:break语句用于嵌套循环结构
# 第1层循环,遍历次数为2for i in range(2): print("-----%d-----" %i)# 第2层循环,遍历次数为10 for j in range(10):# 使用break语句,j>1时不执行循环体 if j > 1: break print(j)输出结果:
-----0-----01-----1-----01在代码清单9中,break语句在条件判断式“if j>1:”后被使用,因此尽管j的指定遍历次数为10,实际上遍历只运行两次 。由于break语句只终止本层循环的运行,i依旧遍历执行了两次,而不是在第1次遍历过程末尾终止 。
2. continue
Python中的continue语句用于跳出当前循环,并执行下一次循环,而break跳出整层循环,两者的功能具有明显区别 。
如果一段代码中包含continue语句,循环执行至continue处时,先忽略本次循环,在本层仍满足条件的剩余循环次数中继续执行,不会终止这一层循环 。实际上,如果在某一层的每次循环中都使用continue语句,就相当于使用break语句 。
打印一个数表,要不打印某些指定的数字,或只打印某类数,就可以使用continue语句跳过一些循环次数,该语句在for循环和while循环中都可以自由地使用,如代码清单10所示 。
  • 代码清单10:continue语句用于循环结构
# 当i等于1或3时,跳过continue后的print语句for i in range(0,5): if i == 1 or i == 3: continue print(i) 输出结果:
024 # 如果遇到偶数,跳过continue后的print语句counts = 0while counts < 10: counts += 1 if counts % 2 == 0: continueprint(counts)输出结果:
13579 break语句一旦用于嵌套循环中的第n层,该层循环会被终止,但在执行第n-1层循环时,仍会创造一个第n层循环并执行 。continue语句同样如此,只是仍会执行某一层的剩余部分 。因此,无论使用哪种循环终止语句,都只会影响使用终止语句的那一层循环,而不会干扰到其他层 。continue语句用于循环的例子如代码清单11所示 。
  • 代码清单11:continue语句用于嵌套循环结构
# 第1层循环,遍历次数为2for i in range(2): print("-----%d-----" %i)# 第2层循环,遍历次数为5 for j in range(5):# 当j等于2或4时,不执行循环体 if j == 2 or j == 4: continue print(j) 输出结果:
-----0-----013-----1-----0133. pass
pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性 。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行 。pass语句并非循环或者条件语句的一部分,但与break、continue在代码形式上有些类似 。
使用pass语句遍历输出str及数值计算,如代码清单12所示 。
  • 代码清单12:pass语句
for element in "Python":# element为y时,不做任何操作,不会被输出 if element == "y": pass else: print(element) 输出结果:
Pthon counts = 0while counts < 5: counts += 1# i=3时,不执行循环体 if counts == 3: pass else: print(counts ** 2) 输出结果:
141625 从代码清单12可以看到,Python在“P”和“t”之间占位,当循环遍历到“y”时不做任何操作;当i等于3时,幂运算不执行,但不影响其他数值 。上述两个代码如果在pass的位置缺失,程序将无法执行,因为判断条件没有给出相应的执行语句,会导致逻辑出错 。使用pass语句占位,一方面为了让程序正常执行,另一方面也是为了方便以后补充操作语句 。


推荐阅读