当前位置: 首页 > article >正文

python3中条件判断语句:match...case语句

一. 简介

前面一篇文章学习 python中的 if...elif if...else语句。文章如下:

python3中条件判断语句:if 语句与if嵌套语句-CSDN博客

本文继续来学习 python3中的条件判断语句,python3.10引入的 match...case条件判断语句。

二. python3中条件判断语句:match...case语句

Python 3.10 增加了 match...case 的条件判断,match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。

case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。

1. 第一种语法格式

第一种语法格式如下:

match subject:
    case <pattern1>:
        do something_1
    case <pattern2>:
        do something_2
    case <pattern3>:
        do something_3
    case _:
        do something_default

下面来举例说明:

#!/usr/bin/env python3

def http_error(status):
    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"

print(http_error(404))

输出如下:

Not found

2. 第二种语法格式

第二中语法格式:可以使用 if 关键字在 case 中添加条件:

match expression:
    case pattern1:
        # 处理pattern1的逻辑
    case pattern2 if condition:
        # 处理pattern2并且满足condition的逻辑
    case _:
        # 处理其他情况的逻辑

下面是匹配元组的一个实例:

#!/usr/bin/env python3

def match_example(item):
    match item:
        case (x, y) if x == y:
            print(f"匹配到相等的元组: {item}")
        case (x, y):
            print(f"匹配到元组:{item}")
        case _:
            print("匹配到其他情况")
        
match_example((1, 1))
match_example((1, 3))

输出如下:

匹配到相等的元组: (1, 1)
匹配到元组:(1, 3)

关于 match...case语句暂时学习到这里。


http://www.kler.cn/a/459404.html

相关文章:

  • ros常用命令记录
  • 9.系统学习-卷积神经网络
  • 计算机网络——期末复习(5)期末考试样例1(含答案)
  • canvas+fabric实现时间刻度尺+长方形数据展示
  • typescript安装后仍然不能使用tsc,如何解决
  • springcloud篇3-docker需熟练掌握的知识点
  • 后端Java开发如何向LLM方向转型
  • Python爬虫:亚马逊评论数据在市场分析中的应用
  • 【实验记录】动手实现一个简单的神经网络实验(一)
  • Nginx 配置前端后端服务
  • 【Python实现连续学习算法】Python实现连续学习Baseline 及经典算法EWC
  • Spring Cloud Alibaba2022之Sentinel总结
  • 【GraphRAG】LEGO-GraphRAG框架解读
  • 商米电子秤服务插件
  • 华为ensp-BGP联盟
  • vue 修改vant样式NoticeBar中的图标,不用插槽可以直接用图片
  • AI与药学:ChatGPT与临床培训——药学博士(Pharm-D)学生的看法、担忧和实践
  • 《机器学习》——数据标准化(0~1标准化,z标准化)
  • 【杂谈】-艺术中的AI:作用及未来
  • C语言内存管理函数
  • [python SQLAlchemy数据库操作入门]-14.实时数据采集 记录股市动态
  • No.2十六届蓝桥杯备战|练习题4道|数据类型|字符型|整型|浮点型|布尔型|signed|unsigned(C++)
  • 下载并使用CICFlowMeter提取网络流特征(Windows版本)
  • Mac 环境 VVenC 编译与编码命令行工具使用教程
  • 英创主板ESM8400支持Debian 12桌面系统
  • CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)