如何在 Python 的循环中使用 else 语句?
在本文中,我们将展示如何在 Python 的循环中使用 else 语句。
很多人可能会对 else 这个词汇感到困惑,因为在 if-else 条件语句中使用 else 比较常见,但在循环中使用 else 却显得有些奇怪!Python 提供了一个额外的功能,可以在循环中使用 else。
循环中的 else 块用于 while 和 for 循环。当指定的循环条件为 false 时,else 块在循环结束时运行,也就是说,只有在循环正常结束时,else 语句才会被执行。
更多Python相关文章,请阅读:Python 教程
语法
for 循环可选的 else 子句
for variable_name in iterable:
# 在循环中的语句
.
.
.
else:
# 在 else 子句中的语句
.
.
语法
while 循环可选的 else 子句
while condition:
# 在循环中的语句
.
.
.
else:
# 在 else 子句中的语句
.
.
在 Python 的 for 循环中使用 else 语句
在其他编程语言中,else 只能与 if-else 搭配使用。但 Python 允许我们在 for 循环中使用 else。
只有当循环正常结束时,才可以使用 else 功能。如果循环被强制终止,解释器将忽略 else 语句,因此不会执行它。
注 :当循环没有被 break 语句终止时,for/while 后面的 else 块会立即被执行。
方法一:正常结束的 for-else 结构(无 break 语句)
例子
以下程序展示了如何在 for 循环中使用 else 语句:
for i in ['T','P']:
print(i)
else:
# 在循环中的 else 语句
# for 循环中没有 break 语句,因此 else 部分将直接被执行
print("ForLoop-else statement successfully executed")
输出
在执行上述程序时,将会得到以下输出:
T
P
ForLoop-else statement successfully executed
方法二:强制终止的 for-else 结构(有 break 语句)
例子
以下程序展示了在使用 break 语句时,else 语句的工作原理:
for i in ['T','P']:
print(i)
break
else:
# 在循环中的 else 语句
# 因为在 for 循环中有 break 语句,所以循环被强制终止
print("Loop-else statement successfully executed")
输出
在执行上述程序时,将会得到以下输出:
T
说明
只有在循环中有依赖于循环变量的 if 条件语句时,此种类型的 else 才有用。
在 方法一 中,由于 for 循环在迭代列表 [‘T’,’P’] 后正常终止,因此执行了循环结束时的 else 语句。但是,在 方法二 中,由于循环被强制终止,使用 break 等跳转语句,因此不会执行循环结束时的 else 语句。
这些 方法 清楚地说明,当循环被强制终止时,循环-else 表达式不会被执行。
现在考虑一个例子,在其中循环-否则语句在某些情况下执行,而在其他情况下不执行。
方法3:使用break语句和if条件的For-Else结构
例子
下面的程序演示了在使用断言语句和条件语句的情况下else条件的工作方式。
#创建一个函数来检查列表项是正数还是负数
#遍历列表
def positive_or_negative():
for iin[5,6,7]:
if i>=0:
print("Positive number")
else:
print("Negative number")
break
else:
print("Loop-else Executed")
positive_or_negative()
输出
执行上述程序将生成以下输出-
Positive number
Positive number
Positive number
Loop-else Executed
在python中使用else while循环
Else-While没有break语句
算法(步骤)
要执行所需的任务,必须遵循以下算法/步骤-
- 使用while循环来遍历,直到指定条件为true(直到k<8)。
-
增加k值1次,因为我们不希望无限次执行while循环。
-
打印k值。
-
当条件失败/变为false时,else块被执行,即当 k 的值变为8时。
例子
下面的程序演示了在while循环中使用else语句的用法-
k=0
# traversing until the condition is true(k<8)
while k<8:
k += 1
print("k =",k)
else:
print("This is an else block")
输出
执行上述程序将生成以下输出-
k = 1
k = 2
k = 3
k = 4
k = 5
k = 6
k = 7
k = 8
This is an else block
在while循环中使用else语句和break语句
例子
下面的程序演示了在使用while循环的情况下,else条件在break语句中的工作方式-
# 创建一个函数来检查列表是否包含偶数
def hasEvenNumber(l):
# 获取列表长度
n = len(l)
# 初始化一个值为0的变量(索引)
i = 0
# 遍历循环,直到I值小于列表长度
while i < n:
# 检查列表对应索引元素是否为偶数
if l[i] % 2 == 0:
# 如果条件成立,打印一些文本
print("输入的列表包含偶数")
# 使用break语句/退出循环
break
# 将I(索引)值加1
i += 1
else:
# 否则打印“输入的列表不包含偶数”
# 仅在永远不满足break条件并且循环在所有迭代之后终止时才执行
print("输入的列表不包含偶数")
# 通过将列表1作为参数调用hasEvenNumber()函数
print("对于输入列表1:" )
hasEvenNumber([3, 9, 4, 5])
# 通过将列表2作为参数调用hasEvenNumber()函数
print("对于输入列表2:" )
hasEvenNumber([7, 3, 5, 1])
输出
在执行上述程序时,将生成以下输出 −
对于输入列表1:
输入的列表包含偶数
对于输入列表2:
输入的列表不包含偶数
结论
本文教我们如何在for和while循环中使用Python的else语句。此外,我们还了解了在else语句发生时break语句的行为。