He estado tratando de usar un caso de coincidencia en lugar de un millón de declaraciones IF, pero todo lo que intento devuelve el error:
match http_code: ^ SyntaxError: invalid syntaxTambién probé ejemplos de prueba que encontré, que también devuelven este error, incluido este:
http_code = "418" match http_code: case "200": print("OK") case "404": print("Not Found") case "418": print("I'm a teapot") case _: print("Code not found")Soy consciente de que los casos de coincidencia son bastante nuevos para Python, pero estoy usando 3.10, así que no estoy seguro de por qué siempre devuelven este error.
Dos posibilidades: tiene un error de sintaxis en una línea anterior (¡cuenta su apertura ( y cierre ) !), o no está usando Python 3.10
Como dijo un comentarista, verifique su versión de Python: import sys;print(sys.version)
Aquí están mis resultados (como se esperaba) que se ejecutan en 3.10:
Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>> http_code = "418" >>> match http_code: ... case "200": ... print("OK") ... case "404": ... print("Not Found") ... case "418": ... print("I'm a teapot") ... case _: ... print("Code not found") Out[1]: "I'm a teapot"