Skip to content

Switch Case em Python: Como Implementar Declarações Switch em Python

Updated on

Python, uma linguagem de programação versátil e poderosa, tem evoluído ao longo dos anos, introduzindo novos recursos e funcionalidades para aprimorar sua usabilidade e eficiência. Uma dessas funcionalidades que chamou a atenção dos desenvolvedores de Python em todo o mundo é a introdução das declarações Switch Case no Python 3.10. Este artigo explorará os detalhes das declarações Switch Case em Python, seu funcionamento e as alternativas disponíveis em Python.

Quer criar rapidamente visualizações de dados a partir de um DataFrame do Python Pandas sem escrever código?

PyGWalker é uma biblioteca de Python para Análise Exploratória de Dados com Visualização. PyGWalker (opens in a new tab) pode simplificar sua análise de dados e fluxo de trabalho de visualização de dados no Jupyter Notebook, transformando seu DataFrame do Pandas (e DataFrame do Polars) em uma Interface do Usuário estilo Tableau para exploração visual.

PyGWalker para Visualização de Dados (opens in a new tab)

O que é uma Declaração Switch Case em Python?

Declarações Switch Case, também conhecidas como correspondência estrutural, são um recurso comum em muitas linguagens de programação. No entanto, elas estavam ausentes no Python até a introdução da versão 3.10. Uma declaração Switch Case é um tipo de declaração de controle que permite testar uma variável em relação à igualdade em uma lista de valores. Cada valor é chamado de "case" e a variável em que o switch é feito é verificada para cada caso.

No Python 3.10, a declaração Switch Case é implementada usando a palavra-chave match, seguida de uma expressão. A palavra-chave case é usada para definir diferentes casos, e o código em cada caso é executado se a expressão corresponder ao caso.

Por que não havia uma Declaração Switch Case em Python antes da versão 3.10?

Python, ao contrário de outras linguagens de programação, não incluía uma declaração Switch Case antes da versão 3.10. A razão principal para isso é a filosofia do Python de simplicidade e legibilidade. Os criadores do Python acreditavam que a inclusão de declarações Switch Case poderia levar a um código mais complexo e menos legível. Em vez disso, o Python usava declarações if-elif-else para lidar com múltiplas condições, que serviam a um propósito semelhante às declarações Switch Case, mas de uma maneira mais Pythonica.

No entanto, com o lançamento do Python 3.10, a linguagem introduziu declarações Switch Case, reconhecendo seu potencial para melhorar a eficiência e a legibilidade do código em certas situações.

Como o Switch Case funciona no Python 3.10?

No Python 3.10, as declarações Switch Case são implementadas usando as palavras-chave match e case. Aqui está um exemplo básico de como funciona:

def switch_case(x):
    match x:
        case 1:
            return "um"
        case 2:
            return "dois"
        default:
            return "desconhecido"

Neste exemplo, a função switch_case recebe um argumento x. A palavra-chave match é usada para fazer um match do argumento x em diferentes casos. Se x for 1, a função retorna "um". Se x for 2, ela retorna "dois". O caso default é usado como fallback se x não corresponder a nenhum dos casos definidos.

Quais são as alternativas para o Switch Case em Python?

Antes da introdução das declarações Switch Case no Python 3.10, os desenvolvedores de Python usavam vários métodos para simular a funcionalidade de uma declaração Switch Case. Um dos métodos mais comuns é usar um dicionário para mapear valores para funções ou resultados. Aqui está um exemplo:

def um():
    return "um"
 
def dois():
    return "dois"
 
def desconhecido():
    return "desconhecido"
 
switch_dict = {
    1: um,
    2: dois
}
 
def switch_case_dict(x):
    return switch_dict.get(x, desconhecido)()

Neste exemplo, o dicionário switch_dict mapeia os valores 1 e 2 para as funções um e dois, respectivamente. O método get do dicionário é usado para recuperar a função correspondente à entrada x, e se x não estiver no dicionário, ele retorna a função desconhecido.

Continuando de onde paramos, aqui estão os segmentos restantes:

Equivalente sintático para o Switch Case em Python

Antes do advento do Python 3.10, os desenvolvedores frequentemente usavam declarações if-elif-else como um equivalente sintático para as declarações Switch Case. Essas declarações permitem que o código avalie múltiplas expressões e execute um bloco de código assim que uma das condições avaliadas for verdadeira. Aqui está um exemplo:

def switch_case_if(x):
    if x == 1:
        return "um"
    elif x == 2:
        return "dois"
    else:
        return "desconhecido"

Neste exemplo, a função switch_case_if recebe um argumento x. Se x for 1, a função retorna "um". Se x for 2, ela retorna "dois". A declaração else serve como um caso padrão, retornando "desconhecido" se x não corresponder a nenhuma das condições anteriores.

Desempenho das declarações Match Case (Switch Case) em Python

O desempenho das declarações Match Case em Python é comparável ao das declarações if-elif-else. No entanto, as declarações Match Case podem oferecer melhor legibilidade e manutenibilidade, especialmente ao lidar com um grande número de casos. É importante observar que o desempenho pode variar dependendo do caso de uso específico e da complexidade dos padrões envolvidos.


Perguntas frequentes

Agora, vamos responder a algumas perguntas frequentes sobre as declarações Switch Case em Python:

Qual é o equivalente sintático para o Switch Case em Python?

Antes do Python 3.10, os desenvolvedores frequentemente utilizavam instruções if-elif-else como uma equivalente sintática às instruções Switch Case. Essas instruções permitem que o código avalie várias expressões e execute um bloco de código assim que uma das condições for avaliada como verdadeira.

Como simular um Switch Case em Python usando um dicionário?

Um dicionário pode ser usado para simular uma instrução Switch Case em Python. As chaves do dicionário atuam como os casos, e os valores são os resultados ou funções a serem executadas. O método get do dicionário pode ser usado para recuperar o resultado para um determinado caso, com um valor padrão opcional, caso o caso não seja encontrado no dicionário.

Qual é o desempenho das instruções Match Case (Switch Case) em Python?

O desempenho das instruções Match Case em Python é comparável ao das instruções if-elif-else. No entanto, as instruções Match Case podem proporcionar uma melhor legibilidade e manutenibilidade, especialmente ao lidar com um grande número de casos. O desempenho pode variar dependendo do caso de uso específico e da complexidade dos padrões envolvidos.

Conclusão

Isso conclui o artigo sobre as instruções Switch Case em Python. Ele fornece uma visão abrangente do tópico, incluindo o que são, por que eles não foram incluídos no Python antes da versão 3.10, como eles funcionam no Python 3.10 e as alternativas disponíveis. O artigo também responde a algumas perguntas frequentemente feitas sobre as instruções Switch Case em Python.