Tamanho de fonte
Alto contraste
Altura de linha

Substitutos para o comando switch em Python

Avatar de Ana Maria Gomes Ana Maria Gomes
3 minutos de leitura 5 meses atrás

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.

Imagem de um notebook

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
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov