Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

199
Visualizações
El caso de coincidencia de Python muestra un error con el elemento de lista como caso. Esperado ":"

Hola, estaba usando la función Match Case recién agregada, pero me encontré con este problema.

Aquí está mi código:

 from typing import List class Wee(): def __init__(self) -> None: self.lololol: List[str] = ["car", "goes", "brrrr"] def func1(self): self.weee = input() try: match self.weee: case self.lololol[0]: print(self.lololol[0]) case self.lololol[1]: print(self.lololol[1]) case _: print(self.lololol[2]) except SyntaxError as e: print(e) waa = Wee() waa.func1()

En las líneas 11 y 13, aparecen errores que dicen SyntaxError: expected ':' . Sin embargo, cuando cambio case self.lololol[0]: a case "car": , los errores desaparecen. ¿Qué está pasando?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No puede usar expresiones arbitrarias como patrones (ya que a veces sería ambiguo), solo un cierto subconjunto .

Si desea hacer coincidir los elementos de una lista, probablemente debería, dependiendo de la situación, convertirlos en variables separadas o usar list.index .

over 4 years ago · Santiago Trujillo Relatório

0

Esto se debe a que la declaración de case de match está destinada a la coincidencia estructural . Específicamente PEP 635 dice:

Aunque los patrones pueden parecer superficialmente expresiones, es importante tener en cuenta que existe una distinción clara. De hecho, ningún patrón es o contiene una expresión. Es más productivo pensar en patrones como elementos declarativos similares a los parámetros formales en una definición de función.

Específicamente, las variables simples se usan como patrones de captura y no como patrones de coincidencia (definitivamente no es lo que un programador de C/C++ podría esperar...) y funciones o subíndices o simplemente no están permitidos.

Desde un punto de vista práctico, solo las expresiones literales o punteadas se pueden usar como patrones coincidentes.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda