python笔记(12)条件控制

发布于:2024-04-07 ⋅ 阅读:(140) ⋅ 点赞:(0)

目录

1. if 语句

2. elif(else if)

3. match-case(Python 3.10及以上版本)

4. 嵌套条件

注意事项


Python 3 中的条件控制主要通过以下几种结构实现:

1. if 语句

最基本的条件控制结构是 if 语句,用于根据给定条件的真假来决定是否执行某段代码。基本语法如下:

if condition:
    # 当 condition 为 True 时执行的代码块
    statement1
    statement2
    ...

其中,condition 是一个布尔表达式(其结果为 True 或 False),冒号 : 后面跟着一个缩进的代码块,该代码块只有当 condition 为 True 时才会被执行。

2. elif(else if)

为了处理多个互斥条件,可以使用 elif(是 else if 的缩写)来添加额外的条件分支。elif 之后同样跟一个条件和一个代码块。当主 if 条件不成立时,程序会继续检查 elif 子句,直到遇到第一个为 True 的条件,执行对应的代码块,并跳过后续的 elif 和 else。基本语法如下:

if condition1:
    # 当 condition1 为 True 时执行的代码块
    statement1
elif condition2:
    # 当 condition1 为 False 而 condition2 为 True 时执行的代码块
    statement2
# 可以有更多 elif 子句...
else:
    # 当所有条件均为 False 时执行的代码块
    statement3

else 子句是可选的,它提供了一个“兜底”情况,即当所有前面的条件都不满足时执行的代码块。

3. match-case(Python 3.10及以上版本)

从 Python 3.10 开始,引入了一种新的条件控制结构 match-case(匹配模式),类似于其他编程语言中的 switch-case 结构。它允许对一个值进行多种模式的匹配,并根据匹配成功的模式执行相应的代码块。基本语法如下:

match expression:
    case pattern1:
        # 当 expression 与 pattern1 匹配时执行的代码块
        statements1
    case pattern2:
        # 当 expression 与 pattern2 匹配时执行的代码块
        statements2
    # 可以有更多 case 子句...
    case _:
        # 默认情况,当 expression 与所有前面的模式都不匹配时执行
        statements_default


案例:
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the Internet"
上述等价于
    if status == 400:
        return "Bad request"
    elif status == 404:
        return "Not found"
    elif status == 418:
        return "I'm a teapot"
    else:
        return "Something's wrong with the Internet"

其中,expression 是要进行匹配的值,pattern 是一组用于匹配该值的规则,可以是简单的值、变量、类型、甚至是复杂的模式(如结构化模式匹配)。_ 作为默认模式,表示任何未在前面 case 子句中匹配的情况。

4. 嵌套条件

上述条件控制结构可以互相嵌套,形成更复杂的逻辑判断。例如,在一个 if 或 elif 的代码块内部可以再放置另一个 if 语句,或者在 match-case 结构中嵌套使用 if

注意事项

  • 缩进:Python 使用缩进来区分代码块,同一层次的 ifelifelse 或 case 子句必须保持相同的缩进级别(通常为四个空格)。

  • 冒号:每个条件语句(ifelifmatch)后面都要跟一个冒号 :,表示接下来是与该条件关联的代码块。

  • 布尔表达式:条件可以是任何产生布尔结果的表达式,包括比较运算、逻辑运算、属性或方法调用、变量状态检查等。

  • 匹配模式:在 match-case 结构中,模式可以利用 Python 3.10 引入的模式匹配语法,提供比传统条件控制更强大的表达能力,比如同时检查变量的类型和值、解构复杂数据结构等。

综上所述,Python 3 提供了 if-elif-else 和 match-case(Python 3.10 及以上版本)两种条件控制结构,以及通过适当的嵌套来实现复杂的逻辑判断,使程序能够根据不同的条件执行相应的代码片段。


网站公告

今日签到

点亮在社区的每一天
去签到