O que é o "Match" ? 🤔
É uma maneira elegante e eficaz de simplificar suas expressões condicionais, ler manual 8.6📝match. Essa funcionalidade proporciona clareza ao código, tornando-o mais fácil de entender e manter. Imagine que queremos verificar sobre os personagens de "🧙♂️✨Harry Potter", a 🏰 casa a qual pertencem alguns personagens (Grifinória ou Sonserina). Poderia usar um if
, elif
e else
da seguinte forma.
# bora testar com harry, hermione, ron, albus , severus e draco
nome = input("Nome do personagem: ").strip().title()
if nome == "Harry":
print("Grifinória")
elif nome == "Hermione":
print("Grifinória")
elif nome == "Ron":
print("Grifinória")
elif nome == "Albus":
print("Grifinória")
elif nome == "Severus":
print("Sonserina")
elif nome == "Draco":
print("Sonserina")
else:
print("Quem?")
Agora um exemplo usando "match", este vai fazer o mesmo efeito.
nome = input("Nome do personagem: ").strip().title()
match nome:
case "Harry":
print("Grifinória")
case "Hermione":
print("Grifinória")
case "Ron":
print("Grifinória")
case "Albus":
print("Grifinória")
case "Severus":
print("Sonserina")
case "Draco":
print("Sonserina")
case _:
# _ isso significa qualquer outra palavra ou valor
print("Quem?")
Repare que o código ficou mais fácil de entender, o match basicamente vai pegar o nome e vai testar em cada case
e se for o correto, ele executa o código dentro do "case" e termina o programa. Nesse caso, temos duas casas só: Grifinória e Sonserina, então podemos melhorar o código mais ainda.
nome = input("Nome do personagem: ").strip().title()
match nome:
case "Harry" | "Hermione" | "Ron" | "Albus":
print("Grifinória")
case "Severus" | "Draco":
print("Sonserina")
case _:
print("Quem?")
Fomos de 15-14 linhas de código para 🚀 7 linhas de código.
💡Lembre que enquanto maior o código e mais complexo ele for, mais chances há de errar , seja na sintaxe, lógica ,etc.