源本科技 | 码上会

Python 条件语句

2026/01/16
2
0

学习目标

  • 掌握 ifif-elseif-elif-else 的基本语法与执行逻辑

  • 理解短路写法(单行条件表达式)及其适用场景

  • 学会使用嵌套条件处理复杂判断逻辑

  • 了解 Python 3.10 引入的 match-case 模式匹配机制

  • 能够根据问题需求选择最清晰、高效的条件控制结构


条件语句的作用

条件语句用于根据布尔表达式的真假,决定程序执行哪一段代码。它是实现程序“智能决策”的基础,使代码能够对不同输入或状态做出不同响应。Python 中的条件语句主要包括:

  • if

  • if-else

  • if-elif-else

  • 嵌套 if

  • 三元条件表达式(单行 if-else

  • match-case(Python 3.10+)


基本 if 语句

当条件为 True 时,执行缩进代码块。

语法

if condition:
    # 执行语句

示例

age = 20
if age >= 18:
    print("Eligible to vote.")

输出:

Eligible to vote.

注意:Python 使用缩进(通常 4 个空格)定义代码块,而非大括号 {}


if-else 语句

提供两种互斥的执行路径:条件为真时执行 if 块,否则执行 else 块。

语法

if condition:
    # 条件为真时执行
else:
    # 条件为假时执行

示例

age = 10
if age <= 12:
    print("Travel for free.")
else:
    print("Pay for ticket.")

输出:

Travel for free.

if-elif-else 链

用于检查多个互斥条件,按顺序评估,一旦某个条件为真,执行对应代码块并跳过后续分支。

语法

if condition1:
    # ...
elif condition2:
    # ...
elif condition3:
    # ...
else:
    # 所有条件都不满足时执行

示例

age = 25

if age <= 12:
    print("Child.")
elif age <= 19:
    print("Teenager.")
elif age <= 35:
    print("Young adult.")
else:
    print("Adult.")

输出:

Young adult.

提示:elif 是 “else if” 的缩写;else 块是可选的。


嵌套 if-else

在一个条件语句内部再包含另一个条件语句,适用于分层判断逻辑

示例

age = 70
is_member = True

if age >= 60:
    if is_member:
        print("30% senior discount!")
    else:
        print("20% senior discount.")
else:
    print("Not eligible for a senior discount.")

输出:

30% senior discount!

注意:过度嵌套会降低可读性,建议通过提前返回或逻辑合并来简化。


单行条件表达式

三元运算符

用于在一行内完成简单条件赋值或输出,使代码更简洁。

语法

value_if_true if condition else value_if_false

示例 1:赋值

marks = 45
result = "Pass" if marks >= 40 else "Fail"
print(f"Result: {result}")

输出:

Result: Pass

示例 2:直接输出

age = 20
status = "Adult" if age >= 18 else "Minor"
print(status)  # Adult

适用场景:简单判断、变量初始化、返回值选择等。
不适合复杂逻辑或多行操作。


match-case 语句

Python 3.10 引入的新特性,类似于其他语言中的 switch-case,但功能更强大,支持模式匹配

语法

match variable:
    case pattern1:
        # 匹配时执行
    case pattern2 | pattern3:  # 多值匹配
        # ...
    case _:  # 通配符(默认情况,相当于 else)
        # ...

示例

number = 2

match number:
    case 1:
        print("One")
    case 2 | 3:               # 匹配 2 或 3
        print("Two or Three")
    case _:                   # 默认情况
        print("Other number")

输出:

Two or Three

条件表达式真值判断

Python 在条件中自动将值转换为布尔类型。以下值被视为 False(假值)

  • None

  • False

  • 数值零:0, 0.0, 0j

  • 空容器:'', [], (), {}, set()

  • 自定义对象若定义了 __bool__()__len__() 并返回 False/0

其余所有值均为 True(真值)

示例

if []: 
    print("不会执行")  # 空列表为假值

if "hello":
    print("会执行")    # 非空字符串为真值

重点总结

  • if 是最基本的条件控制结构,依赖布尔表达式。

  • if-else 提供二选一分支,if-elif-else 支持多分支。

  • 单行三元表达式 a if cond else b 适用于简单条件赋值。

  • 嵌套 if 可处理层级判断,但应避免过深。

  • match-case(Python 3.10+)是现代、强大的模式匹配工具。

  • 所有非假值在条件中均视为 True,理解真值 / 假值规则至关重要。

  • 缩进是 Python 语法的核心,必须严格遵守。


思考题

  1. 以下代码输出什么?为什么?

    x = 10
    if x > 5:
        print("A")
    elif x > 8:
        print("B")
    else:
        print("C")
  2. 如何用 match-case 重写一个判断用户输入命令(如 "start", "stop", "restart")的程序?

  3. 在什么情况下,使用多个独立的 if 语句比 if-elif-else 更合适?请举例说明。