Ao programar em Python, você pode se deparar com situações nas quais precisa executar diferentes blocos de código com base no valor de uma variável. Em muitas linguagens de programação, isso é normalmente tratado por um comando switch
ou case
. No entanto, Python não possui um comando switch
, então quais são as alternativas? Vamos explorar algumas das soluções recomendadas em Python para esse cenário.
Usando match-case no Python 3.10+
O Python 3.10 introduziu um novo recurso que se assemelha bastante ao comando switch
tradicional: o comando match-case
. Esse recurso permite que você compare sua variável com diferentes padrões e execute código de acordo. Aqui está um exemplo simples:
def f(x):
match x:
case 'a':
return 1
case 'b':
return 2
case _:
return 0 # Caso padrão se x não for encontrado
O comando match-case
é versátil e pode lidar com correspondências de padrões mais complexas, o que o torna uma poderosa adição ao Python.
Usando Dicionários para Versões Anteriores do Python
Para aqueles que usam versões do Python anteriores à 3.10, os dicionários oferecem uma maneira elegante de imitar a funcionalidade de um comando switch
. Você pode mapear chaves para valores ou funções e, em seguida, usar o índice de entrada para recuperar o valor correspondente. Aqui está um exemplo:
def f(x):
return {
'a': 1,
'b': 2,
}.get(x, 9) # 9 é o valor padrão se x não for encontrado
Você também pode usar dicionários para armazenar funções, o que pode ser particularmente útil quando você precisa realizar diferentes ações:
resultado = {
'a': lambda x: x * 5,
'b': lambda x: x + 7,
'c': lambda x: x - 2
}[valor](x)
Usando Cadeias de if-elif-else
Outra maneira de replicar a funcionalidade do comando switch
é usando uma sequência de comandos if-elif-else
. Essa abordagem é direta e permite condições complexas:
if x == 'a':
# Faça algo
elif x == 'b':
# Faça outra coisa
elif x in 'bc':
# Faça ainda outra coisa
elif x in 'xyz':
# Faça mais uma coisa
else:
# Caso padrão
Embora este método não permita a continuação automática como um comando switch
, ele é um padrão familiar para a maioria dos programadores Python.
Resumo
Em Python, embora não haja um equivalente direto ao comando switch
encontrado em outras linguagens, existem várias alternativas que podem ser usadas para alcançar funcionalidades semelhantes. Usuários do Python 3.10+ podem aproveitar o novo comando match-case
para correspondência de padrões, enquanto aqueles em versões mais antigas podem usar dicionários ou cadeias de if-elif-else
para controlar o fluxo com base nos valores das variáveis. Cada método tem suas próprias vantagens, e a escolha de qual usar dependerá das suas necessidades específicas e da versão do Python que você está usando.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários