Python循环控制中break、continue、pass和else语句的用法(第4节)


在Python中,break语句continue语句是用于控制循环语句的特殊关键字,通常用于在特定条件下控制循环的执行流程,以实现更灵活和精确的循环控制。

1、break语句

break语句用于在循环中提前终止循环。当程序执行到break语句时,循环会立即停止,并且程序会跳出循环体继续执行下一条语句。break语句通常用于for循环和while循环中,用于在满足某个条件时提前结束循环。当条件满足时,程序会立即跳出循环并执行循环之后的代码。例如:

动手练一练:

a = ["Orange", "Apple", "Banana", "Cherry"]
for b in a:
    if b == "Banana":
        break
    print(b)

执行以上代码,输出结果为:

Orange
Apple

上面的例子中,当循环到“Banana”时,break语句被执行,循环立即停止,因此只输出了“Banana”前面的“Orange”和“Apple”。

2、continue语句

与break语句不同,当continue语句在循环结构中执行时,并不会退出循环结构,而是立即结束本次循环,重新开始下一轮循环,也就是说,跳过当前的循环体执行之后的循环,继续下一轮循环。

动手练一练:

a = ["Orange", "Apple", "Banana", "Cherry"]
for b in a:
    if b == "Banana":
        continue
    print(b)

执行以上代码,输出结果为:

Orange
Apple
Cherry

上面的例子中,循环从“Orange”开始,当遇到“Banana”时,continue语句将会跳过print(b)的执行,直接进入下一次循环,从而实现了只输出其他3个元素的效果。

3、pass语句

pass语句在Python编程中是一个非常实用的占位符,它可以让程序运行在某些特定的情况下,什么也不做却不引发任何错误。pass是一个空语句,它的作用是什么也不做。当你在编写一个项目程序代码时,可能需要一个占位符来表示尚未完成的代码块。这时候,你可以使用pass语句作为暂时的占位符。例如:

动手练一练:

a = ["Orange", "Apple", "Banana", "Cherry"]
for b in a:
    if b == "Banana":
        # 不知道做什么,该代码尚未完成的
    else:
        print(b)

执行以上代码,输出结果为:

IndentationError: expected an indented block

上面的例子中,因为一个完整的代码块缺少代码,Python解释器提示错误信息“缩进错误:需要缩进块”。

动手练一练:

a = ["Orange", "Apple", "Banana", "Cherry"]
for b in a:
    if b == "Banana":
        pass
    else:
        print(b)

执行以上代码,输出结果为:

Orange
Apple
Cherry

虽然pass语句在Python编程中非常实用,但在使用过程中,不要滥用pass语句。在代码开发过程中,pass语句可以作为临时占位符,但在最终代码中,应尽量避免使用pass语句,以免影响代码的可读性和执行效率。

4、循环语句中else的用法

在Python中,else可以理解为“其它”,else除了和if一起使用,还能和while循环、for循环语句一起使用。在循环语句中,else是在循环体正常结束时才能执行的代码段,例如:

动手练一练:

a = 1
while a <= 3:
    print(a, "小于或等于3")
    a += 1     # 相当于a=a+1
else:
    print(a, "大于3,循环结束")

执行以上代码,输出结果为:

1 小于或等于3
2 小于或等于3
3 小于或等于3
4 大于3循环结束

上面的例子中,while循环到最后一个“a=4”时,不满足while后面的条件测试“a <= 3”,导致循环结束,所以就执行了else后面的代码。

在while循环或for循环中使用else语句时,如果循环中执行了break、return或出现一些异常抛出时,都会使得循环中断,else后的代码块也不会被执行。

动手练一练:

a = 1
while a <= 6:
    if a == 3:
        break
    print(a, "小于或等于6")
    a += 1     # 相当于a=a+1
else:
    print(a, "大于6,循环结束")

执行以上代码,输出结果为:

1 小于或等于6
2 小于或等于6

上面的例子中,while循环到“a=3”时,中途出现break退出循环,else后的代码块并没有被执行。注意上面的代码中,“a == 3”不能写出“a = 3”,因为“a = 3”是直接将数字3赋值给变量“a”,而符号“==”是比较两个数值是否相等,“a == 3”可以理解为“当a的值等于3时”。

else语句同样可以在for循环后面使用,原理与while循环一样,例如:

动手练一练:

for a in range(5):
    print("a等于", a)
else:
    print("结束循环")

执行以上代码,输出结果为:

a等于 0
a等于 1
a等于 2
a等于 3
a等于 4
结束循环

动手练一练:

for a in range(5):
    if a == 3:
        break
    print("a等于", a)
else:
    print("结束循环")

执行以上代码,输出结果为:

a等于 0
a等于 1
a等于 2

上面的例子中,for循环遍历由range(5)创建的0~4的序列,当遍历到“a==3”时,中途出现break退出循环,else后的代码块并没有被执行。