Sentencia match...case de Python

Python3 条件控制Control condicional de Python3

match...caseProporciona un método de coincidencia de patrones más potente.

La coincidencia de patrones es una forma de manejar estructuras de datos en programación que puede hacer que el código sea más conciso y legible.

match...caseEs una sintaxis nueva introducida en la versión 3.10 de Python.

match...caseLa estructura de sintaxis es la siguiente:

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

Descripción de parámetros:

  • matchLa sentencia va seguida de una expresión, y luego se usacasela sentencia case para definir diferentes patrones.
  • caseLe sigue un patrón, que puede ser un valor concreto, una variable, un comodín, etc.
  • Se puede usarifla palabra clave if encasela sentencia case para agregar condiciones.
  • _Normalmente se utiliza como comodín para coincidir con cualquier valor.

Ejemplo

1. Coincidencia simple de valores

Ejemplo

def match_example(value):
    match value:
        case 1:
            print(Coincide con el valor 1)
        case 2:
            print(Coincide con el valor 2)
        case _:
            print(Coincide con otro valor)

match_example(1)  # Salida: Coincide con el valor 1
match_example(2)  # Salida: Coincide con el valor 2
match_example(3)  # Salida: Coincide con otro valor

En el código anterior,matchla sentencia match se usa para coincidir convaluelos diferentes casos, cadacasela sentencia case representa una posible coincidencia,_el comodín _ representa los demás casos.

El resultado de salida es:

匹配到值为1
匹配到值为2
匹配到其他值

2. Uso de variables

Ejemplo

def match_example(item):
    match item:
        case (x, y) if x == y:
            print(fCoincide con la tupla igual: {item})
        case (x, y):
            print(fCoincide con la tupla: {item})
        case _:
            print(Coincide con otros casos)

match_example((1, 1))  #Salida:Coincide con la tupla igual: (1, 1)
match_example((1, 2))  #Salida:Coincide con la tupla: (1, 2)
match_example("other") #Salida:Coincide con otros casos

El resultado de salida es:

匹配到相等的元组: (1, 1)
匹配到元组: (1, 2)
匹配到其他情况

3. Coincidencia de tipos

Ejemplo

class Circle:
    def __init__(self, radius):
        self.radius = radius

class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

def match_shape(shape):
    match shape:
        case Circle(radius=1):
            print(Coincide con un círculo de radio 1)
        case Rectangle(width=1, height=2):
            print(Coincide con un rectángulo de ancho 1 y alto 2)
        case _:
            print(Coincide con otras formas)

match_shape(Circle(radius=1))          # Salida: Coincide con un círculo de radio 1
match_shape(Rectangle(width=1, height=2)) # Salida: Coincide con un rectángulo de ancho 1 y alto 2
match_shape("other")                    # Salida: Coincide con otras formas

El resultado de salida es:

匹配到半径为1的圆
匹配到宽度为1,高度为2的矩形
匹配到其他形状

Python3 条件控制Control condicional de Python3

Otras extensiones