如何在 Python 的循环中使用 else 语句?

如何在 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 子句中的语句
 .
 .
Python

语法

while 循环可选的 else 子句

while condition:
 # 在循环中的语句
 .
 .
 .
else:
 # 在 else 子句中的语句
 .
 .
Python

在 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")
Python

输出

在执行上述程序时,将会得到以下输出:

T
P
ForLoop-else statement successfully executed
Python

方法二:强制终止的 for-else 结构(有 break 语句)

例子

以下程序展示了在使用 break 语句时,else 语句的工作原理:

for i in ['T','P']:
   print(i)
   break
else:
   # 在循环中的 else 语句
   # 因为在 for 循环中有 break 语句,所以循环被强制终止
   print("Loop-else statement successfully executed")
Python

输出

在执行上述程序时,将会得到以下输出:

T
Python

说明

只有在循环中有依赖于循环变量的 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()
Python

输出

执行上述程序将生成以下输出-

Positive number
Positive number
Positive number
Loop-else Executed
Python

在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")
Python

输出

执行上述程序将生成以下输出-

k = 1
k = 2
k = 3
k = 4
k = 5
k = 6
k = 7
k = 8
This is an else block
Python

在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])
Python

输出

在执行上述程序时,将生成以下输出 −

对于输入列表1
输入的列表包含偶数
对于输入列表2
输入的列表不包含偶数
Python

结论

本文教我们如何在for和while循环中使用Python的else语句。此外,我们还了解了在else语句发生时break语句的行为。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册