跳至主要内容

Python 中的 elif 语句:条件逻辑入门指南

了解如何在 Python 中编写 if…elif…else 语句。
· 4分钟 阅读

使用 AI 探索

if…elif…else 是 Python 中的条件语句,可根据特定条件自动执行不同的代码。本文将结合示例解释这一 Python 结构中的每个语句。

要在本教程中轻松运行所有示例代码,您可以 免费创建一个 DataLab 工作簿,其中已预装 Python 并包含所有代码示例。想进一步练习 if…elif…else 语句,请查看 这个 DataCamp 实操练习。

if 条件

if 条件是三者中最简单的,它会根据条件是否为真来做出决策。若条件为真,将打印缩进的表达式;若条件为假,则跳过该缩进表达式。

if condition:
    expression

if 示例 

假设您有一个变量 z,等于 4。如果该值为“偶数”,您将打印 z is 'even'。您将使用取模运算符 2,若 z 为“偶数”,结果将返回 0。一旦运行下方代码,Python 会检查条件是否成立。若为 True,则执行相应代码。

z = 4

if z % 2 == 0:  # True
    print("z is even")

# z is even

if 语句中包含多行的示例   

如下面的示例所示,在 if 语句中包含多行代码完全没有问题。运行脚本时会返回两行输出。如果条件不满足,则不会执行这些表达式。

z = 4
if z % 2 == 0:
    print("checking " + str(z))
    print("z is even")

# checking 4
# z is even

条件为 False 的 if 示例   

我们将 z 改为奇数。您会注意到代码不会打印任何内容,因为条件不成立,即为 False。

z = 5
if z % 2 == 0:  # False
    print("checking " + str(z))
    print("z is even")

# no output expected

if-else 条件

与简单的 if 语句相比,if-else 条件在决策过程中增加了一个步骤。if-else 语句的开头与简单的 if 语句类似;但如果条件为假,不再是什么都不打印,而是会打印 else 下的缩进表达式。

if condition:
    expression
else:
    expression

if-else 示例 

延续前面的示例,若当 if 条件为假时,您想打印“z is odd”,该怎么办?在这种情况下,您可以直接添加另一个条件,即 else 条件。若以 z 等于 5 来运行,条件不为真,因此会打印 else 分支中的表达式。

z = 5
if z % 2 == 0:
    print("z is even")
else:
    print("z is odd")

# z is odd

if-elif-else 条件

这三种结构中最复杂的是 if-elif-else 条件。当您遇到多个条件的情况时,可以在 if 条件与 else 条件之间根据需要放入任意数量的 elif 条件。

if condition:
    expression
elif condition:
    expression
else:
    expression

if-elif-else 示例一 

下面的示例演示了当数字能被 2 或 3 整除时打印不同结果。

这里,因为 z 等于 3,第一个条件为 False,于是转到下一个条件。下一个条件为 True,因此会执行对应的打印语句。

z = 3
if z % 2 == 0:
    print("z is divisible by 2")
elif z % 3 == 0:
    print("z is divisible by 3")
else:
    print("z is neither divisible by 2 nor by 3")

# z is divisible by 3

if-elif-else 示例二  

在下面的示例中,您定义了两个变量 room 和 area。随后分别为 room 和 area 构建了 if-elif-else 与 if-else 条件结构。

在第一个条件结构中,您检查 if 是否在厨房中查看,elif 是否在卧室中查看,else 则表示在其他地方查看。根据 room 变量的取值,满足的条件会被执行。

类似地,对于 area 变量,您编写了一个 if 与 else 条件,用于检查 area 是否大于 15。

# Define variables
room = "bed"
area = 14.0

# if-elif-else construct for room
if room == "kit":
    print("Looking around in the kitchen.")
elif room == "bed":
    print("Looking around in the bedroom.")
else:
    print("Looking around elsewhere.")

# if-elif-else construct for area
if area > 15:
    print("Big place!")
else:
    print("Pretty small.")

# Looking around in the bedroom. 
# Pretty small.

自己试一试。

想进一步了解 Python 中的 elif 语句,请观看我们课程 Intermediate Python 的这段视频。

本文内容选自 Hugo Bowne-Anderson 的 Intermediate Python 课程。

结论

条件语句是 Python 编程逻辑中最基础的构建块之一。

本文要点:

  • if 仅在条件为真时运行一段代码。

  • if-else 添加了一个后备分支,当条件为假时运行。

  • if-elif-else 允许按顺序检查多个条件,并执行第一个为真的条件所对应的代码块。

主题