Python 条件语句:IF…Else、ELIF 和 Switch Case

⚡ 智能摘要

Python 条件语句通过仅在布尔表达式求值为真时才执行特定的代码块来控制程序流程。它们包括 if、else、elif、嵌套 if、三元运算符以及用于实现清晰、决策驱动逻辑的结构模式匹配。

  • 核心理念: if 语句仅在条件为真时才执行其缩进的代码块,这构成了决策的基础。 Python.
  • 处理替代方案: 添加 else 语句作为备用路径,添加 elif 语句用于按顺序测试其他条件,而无需深度嵌套。
  • 避免逻辑错误: 当应该只有一个结果时,请使用单个 if-elif-else 链,而不是独立的 if 语句。
  • 写作要简洁明了 Code: 应用三元表达式 value_if_true if condition else value_if_false,即可在一行易读的语句中赋值。
  • 现代分支: 用字典映射替换冗长的 elif 链ping 或者在[此处应插入原文]中引入的 match-case 语句 Python 3.10 用于更清晰的多路选择。

Python 条件陈述

什么是条件语句 Python?

条件语句 Python 根据特定布尔约束的计算结果为真或假,执行不同的计算或操作。它们允许程序做出决策并遵循不同的路径,而不是按顺序执行每一行代码。 Python条件语句由……处理 if 语句及其相关语句:else、elif 和嵌套 if。

什么是 Python 如果语句?

Python 如果声明 用于决策操作。它包含一段代码,仅当 if 语句中给出的条件为真时才运行。如果条件为假,则运行可选的 else 语句,其中包含 else 条件对应的代码。当您想要根据一个条件执行操作而另一个条件不成立时,您可以使用 if 语句。 Python if-else 语句。

Python if 语句语法:

if expression:
    statement
else:
    statement

Python if…else 流程图

Python if…else流程图,显示了真分支和假分支

上面的流程图展示了 if-else 语句中的控制流。让我们来看一个例子。 Python if-else语句的实际应用:

Python 编辑器中 if 语句示例输出

# Example file for working with conditional statements
def main():
    x, y = 2, 8
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 线3: 我们定义两个变量 x,y = 2,8。
  • Code 线4: if 语句检查条件 x < y,即 在这种情况下。
  • Code 线5: 变量 st 设置为“x 小于 y”。
  • Code 线6: print(st) 行输出 st 的值,即“x 小于 y”。

当“如果”条件不满足时会发生什么?

以前面的例子为基础,让我们看看当 if 条件成立时会发生什么。 Python 条件不满足。当条件为假且不存在其他分支时,缩进的代码将被完全跳过。

Python 当 if 条件不满足时会出错

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 线3: 我们定义两个变量 x,y = 8,4。
  • Code 线4: if 语句检查条件 x < y,即 在这种情况下。
  • Code 线5: 变量 st 是 不是 设置为“x 小于 y”。
  • Code 线6: print(st) 这行代码试图打印一个从未声明过的变量,所以 Python 提出一个 名称错误.
⚠ 警告: 在 if 语句块中引用一个只在 if 语句块内赋值的变量是初学者常犯的错误。要么在 if 语句块中添加一个 else 分支,要么在 if 语句块之前给变量赋予一个默认值。

如何使用“else”条件

为了避免上述错误,您可以添加一个 else 条件语句。else 条件语句用于需要根据一个语句的结果来判断另一个语句的情况。如果一个条件为假,else 代码块会提供一条替代路径,以确保程序仍然能够产生结果。

计费示例:

Python if-else 条件示例

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 线3: 我们定义两个变量 x,y = 8,4。
  • Code 线4: if 语句检查条件 x < y,即 在这种情况下。
  • Code 线6: 程序控制流向了 else 条件。
  • Code 线7: 变量 st 被设置为“x 是 更大的 比 y”。
  • Code 线8: print(st) 行输出 st 的值,即“x 大于 y”。

当“else”条件不起作用时

else 条件并非总能给出预期结果。当程序逻辑存在缺陷时,它可能会输出错误信息。这种情况通常发生在程序中需要处理两个以上的语句或条件时。一个例子可以帮助你理解这个概念。

这里两个变量都相同(8,8),但程序输出却是 “x大于y”, 这是 WRONG这是因为程序会先检查第一个条件(if 条件),如果第一个条件不成立,程序就会输出第二个条件(else 条件)作为默认值。下一步,我们将探讨如何纠正这个错误。

Python 否则条件会产生错误结果

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()

如何使用“elif”条件语句

为了纠正之前 else 条件所造成的错误,我们可以使用 ELIF 通过使用 elif 条件语句,您可以告诉程序在第一个条件为假时测试第三种可能性。您可以在代码中链接多个 elif 条件语句,以检查第四种、第五种以及更多可能性。

计费示例:

Python elif 条件示例

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    elif(x == y):
        st = "x is same as y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 线3: 我们定义两个变量 x,y = 8,8。
  • Code 线4: if 语句检查条件 x < y,即 在这种情况下。
  • Code 线6: 程序控制流转到 elif 条件语句。它检查 x == y 是否成立,结果为真。
  • Code 线7: 变量 st 被设置为“x 是 一样 y。”
  • Code 线10: 程序控制跳出 if 语句(不会执行到 else 语句),并打印 st。输出结果为“x 与 y 相同”,这是正确的。

如何用最少的代码执行条件语句 Code

现在你可以编写完整的if-elif-else代码块了, Python 它允许你将一个简单的条件简化成一行代码。你无需为每个分支编写单独的代码,而是可以使用…… 三元(条件)表达式.

语法:

value_if_true if condition else value_if_false

计费示例:

Python 单行三元条件语句示例

def main():
    x, y = 10, 8
    st = "x is less than y" if (x < y) else "x is greater than or equal to y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 线2: 我们定义两个变量 x,y = 10,8。
  • Code 线3: 如果 x < y,则变量 st 设置为“x 小于 y”;否则设置为“x 大于或等于 y”。因为这里 x > y,所以 st 成为第二个值。
  • Code 线4: 打印 st 的值并给出正确的输出。

Python 嵌套 if 语句

嵌套 if 语句将一个 if 语句放在另一个 if 语句内部,当一个决定取决于第二个条件时,嵌套 if 语句非常有用。以下示例演示了嵌套 if 语句的用法。 Python 计算船舶ping 费用根据国家和订单总额而定。

total = 100
# country = "US"
country = "AU"

if country == "US":
    if total <= 50:
        print("Shipping Cost is $50")
    elif total <= 100:
        print("Shipping Cost is $25")
    elif total <= 150:
        print("Shipping Cost is $5")
    else:
        print("FREE")

if country == "AU":
    if total <= 50:
        print("Shipping Cost is $100")
    else:
        print("FREE")

取消注释上面的代码中的第 2 行,注释掉第 3 行,然后再次运行代码,看看对于不同的国家/地区,输出结果会有什么变化。

Switch Case 语句 Python

什么是Switch语句?

switch 语句是一种多路分支语句,它将变量的值与 case 语句中指定的值进行比较。多年来, Python 由于该语言没有 switch 语句,所以开发者们用其他方式实现了相同的功能。 Python 字典 地图ping.

使用字典映射的示例ping:

def switch_example(argument):
    switcher = {
        0: "This is Case Zero",
        1: "This is Case One",
        2: "This is Case Two",
    }
    return switcher.get(argument, "nothing")

if __name__ == "__main__":
    argument = 1
    print(switch_example(argument))

切换案例与匹配(Python 3.10和 Later)

建立 Python 3.10 (2021年10月发布) Python 提供原生 匹配案例 这种语句被称为结构模式匹配。它提供了一种简洁易读的替代方案,可以取代冗长的 elif 链和上面提到的字典方法。

def switch_example(argument):
    match argument:
        case 0:
            return "This is Case Zero"
        case 1:
            return "This is Case One"
        case 2:
            return "This is Case Two"
        case _:
            return "nothing"

if __name__ == "__main__":
    print(switch_example(1))

下划线 (_) 用作默认情况,匹配前面情况未处理的任何值,就像传统 switch 语句中的 default 一样。

✅提示: 如果您正在使用 match-case,请使用它。 Python 3.10 或更高版本。对于旧版本,请参阅字典映射。ping 仍然是模拟 switch 语句的标准方法。

if、elif 和 else:快速比较

利用此比较结果,确定哪种条件结构更符合您的决策逻辑。

个人陈述目的何时使用
if当条件为真时,执行代码块。一个单一的“是/否”决定
如果……否则当条件为假时,提供备用方案。两种互斥的结果
ELIF按顺序测试其他条件三种或更多种可能性
嵌套将一个 if 放在另一个 if 里面取决于第二个条件的决定
三元将 if-else 语句合并成一行。简单赋值
匹配案例将值与多个模式进行匹配多路分支(Python 3.10 +)
⚠ 注意: Python 其中 2 于 2020 年 1 月 1 日达到使用寿命终点,本文中的所有示例均使用 Python 3 语法。在 Python 2、`print` 是一个语句(例如,`print st`)而不是一个函数,因此上面的代码不能直接运行。 Python 2.

常见问题

if 语句启动一个决策过程,并且总是会被执行。elif(else-if)语句仅在前面的 if 或 elif 条件为假时才会被检查,这使得你可以在一个区块运行期间,在一个链中测试多种可能性。

是的。 自从 Python 3.10 版本中,match-case 语句通过结构模式匹配提供了原生 switch 风格的分支逻辑。在旧版本中,开发者使用字典映射来模拟 switch 逻辑。ping 使用 get() 方法提供默认值。

使用三元表达式:如果条件为真则赋值,否则赋值。例如,如果 x < 10,则 st = “low”,否则 st = “high”,这样就可以在一行简洁易读的代码中赋值,而无需使用完整的 if-else 语句块。

是的。AI 代码助手可以根据纯文本提示生成、解释和调试 if-elif-else 逻辑。它们对学习很有帮助,但您仍然应该检查输出结果,以确认条件和缩进与您的预期逻辑相符。

是的。条件逻辑是人工智能的基础。决策树、基于规则的系统和数据预处理流程都依赖于if-else分支来选择操作、过滤数据以及控制模型如何处理不同的输入。

总结一下这篇文章: