© Maria Vonotna/Shutterstock.com
Geralmente, a programação visa tornar um problema complexo o mais simples possível. Dessa forma, os casos de switch podem ser muito úteis para a execução de códigos específicos dependendo do valor ou variável em questão. Em Python, não há switch case, então temos que usar uma alternativa. Descubra como implementar switch case em Python hoje.
O que é Switch Case?
Simplificando, as instruções switch case permitem que seu programa execute diferentes funções, dependendo do valor de uma variável ou declaração. Dessa forma, a instrução switch case avalia o valor e compara o resultado com algumas regras predefinidas que você implementou. Em cada caso, ações específicas devem ser executadas se o valor corresponder ao caso da chave. Você também pode definir um código padrão para ser executado se nenhum dos casos de troca for correspondido.
Embora o Python não tenha um switch case, muitas outras linguagens de programação têm. Assim, vamos ilustrar como um switch case funciona em C:
switch (expression) { case value1: #código a ser executado if expression=value1 break; case valor2: #código a ser executado se expressão=valor2 break; case valor3: #código a ser executado se expressão=valor3 break; padrão: #código a ser executado se a expressão não corresponder a nenhum dos casos acima break;
Relativamente simples, certo? Infelizmente, temos que trabalhar um pouco mais para implementar isso em Python. Na verdade, existem algumas maneiras diferentes de implementar uma função semelhante a switch case, então, vamos entrar nisso.
Como implementar Switch Case usando declarações if-elif-else
Um maneira é usar instruções “if” e “else” para executar uma função específica com base na entrada. Na verdade, isso pode ser descrito de duas maneiras. O primeiro método se parece com:
color=’Blue’if color==’Red’: print(‘color is Red’) elif color==’Green’: print(‘color is Green’) elif color==’Amarelo’: print(‘a cor é amarela’) elif color==’Azul’: print(‘a cor é azul’) else: print(‘A cor é indeterminada’)
A entrada, ou”cor”, é testado em cada uma dessas condições para ver qual corresponde. Nesse caso, a cor é claramente azul, então a saída esperada é ‘a cor é azul’. E é exatamente isso que vemos quando experimentamos este código.
O algoritmo switch case implementado com instruções If-elif-else.
©”TNGD.com
Como implementar switch case usando mapeamento de dicionário
Um dicionário é simplesmente um conjunto não estruturado de valores de dados e possui pares chave:valor. Eles são semelhantes aos títulos de uma planilha, como ‘Nome’, ‘Altura’ e ‘Peso’. Cada chave é emparelhada com valores de dados. Dessa forma, podemos usar uma espécie de função switch case para retornar valores específicos de um dicionário. Isso é ilustrado abaixo:
def switch_case(argument): switcher={“Red”:”RED”,”Blue”:”BLUE”,”Green”:”GREEN”} return switcher.get(argument,”Argumento inválido”) if__name__==”__main__”: argument=”Green”print(switch_case(argument))
Nesta situação, estamos definindo a função “switch_case” como uma função que recebe o argumento.
O dicionário é definido como “switcher” e contém pares chave:valor. As chaves representam nomes de cores em maiúsculas, os valores representam nomes de cores em letras maiúsculas.
O valor que corresponde à chave do argumento é retornado do dicionário usando a função “get”. Caso contrário, o argumento “argumento inválido” é retornado.
Como o argumento de entrada era “Green”, obtemos’GREEN” como saída.
O “if__name==“__main__ ”” significa simplesmente que o código só é executado ao executar o script diretamente.
Mapeamento de dicionário é usado para implementar switch case.
©”TNGD.com
Como implementar switch case usando uma classe
A última forma de implementar switch case em Python é usando uma classe. Este é basicamente um modelo para fazer objetos com atributos e métodos definidos. Por exemplo, uma classe chamada “ID” pode ter dois atributos, “Height” e “Weight”, e métodos para obter esses valores, como “get_height()” e “get_weight()”. Por exemplo, podemos definir a classe como “switchcase” e implementar o processo da seguinte forma:
class switch_case: def months(self, year): default=”Incorrect months”return getattr(self,’case_’+ str (ano), lambda: default)() def case_1(self): return”2001″def case_2(self): return”2002″def case_3(self): return”2003″my_switch=switch_case() print(my_switch.month (1)) print(my_switch.month(3))
Primeiramente, definimos “switch_case” como uma função que implementa switch case.
Depois disso, o método é chamado de “month()” , que recebe o parâmetro “ano” e chama o método “mês” usando diferentes argumentos, “1” e “3”. Quando o método é chamado com o argumento “1”, ele corresponde ao método da classe “case_1()”, gerando o resultado “2001”. Quando o argumento de “3” é chamado, a saída é o valor de string “2003”.
Veja a captura de tela para saber como esse código funciona na prática.
Caso de comutação é implementado usando uma classe.
©”TNGD”. com
Encerrando
Embora o caso de switch não seja explicitamente incluído no Python, há várias maneiras de recriar esse processo. No geral, isso inclui o uso de mapeamento de dicionário, a implementação de uma função de classe ou o uso de instruções if-elif-else. Em todos os casos, o código específico é executado dependendo do argumento fornecido e os valores específicos são retornados dependendo das instruções switch.
Como usar o caso switch em Python Perguntas frequentes (perguntas frequentes)
Quais linguagens de programação suportam instruções switch case?
Existem muitas linguagens de programação que suportam instruções switch case, como C, C++, Java, JavaScript, Ruby, Swift e Python. No entanto, o Python não tem uma função switch case explícita, mas a função pode ser implementada com os vários métodos descritos aqui.
As instruções switch case são mais eficientes do que as instruções if-else?
Nem sempre. A eficiência de uma instrução switch case depende do número de casos e também de como o código está sendo implementado. Se houver apenas alguns valores possíveis para uma determinada expressão, as instruções if-else podem ser mais eficientes.
O que acontece se o valor não corresponder a nenhum dos casos?
Um bloco de código padrão é executado se nenhum dos casos corresponder ao valor em questão.
Quais expressões você pode usar em uma instrução switch case?
Depende da linguagem de programação que você está usando, mas certamente é possível usar expressões de tipos diferentes de números inteiros ou valores de string, como caracteres ou enumerações.
Você pode usar vários casos para o mesmo código?
Na maioria dos casos, sim. Isso pode ser útil quando você deseja usar o mesmo código para vários valores de uma expressão.