Tutoriais

Substitutos para o comando switch em Python

Ana Maria Gomes 17 jun Básico 5xp
Compartilhar

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 gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Python para iniciantes: do zero ao primeiro projeto

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Python para dados: do zero à análise completa

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Python para IA: do zero ao primeiro chatbot

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

0 comentários

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov