{"id":35509,"date":"2024-06-11T11:13:10","date_gmt":"2024-06-11T14:13:10","guid":{"rendered":"https:\/\/www.locaweb.com.br\/ajuda\/?post_type=ht_kb&#038;p=35509"},"modified":"2024-06-11T12:30:24","modified_gmt":"2024-06-11T15:30:24","slug":"witch-case-python","status":"publish","type":"ht_kb","link":"https:\/\/www.locaweb.com.br\/ajuda\/wiki\/witch-case-python\/","title":{"rendered":"Python Switch Case: como implementar e exemplos"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Em muitas linguagens de programa\u00e7\u00e3o, como C, C++ e Java, a estrutura &#8220;switch case&#8221; \u00e9 uma ferramenta essencial para o controle de fluxo, permitindo que um valor seja verificado contra m\u00faltiplas condi\u00e7\u00f5es de forma organizada e eficiente.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Em <\/span><a href=\"https:\/\/www.locaweb.com.br\/blog\/temas\/codigo-aberto\/python\/\"><b>Python<\/b><\/a><span style=\"font-weight: 400;\">, uma linguagem conhecida por sua simplicidade e legibilidade, n\u00e3o h\u00e1 uma estrutura &#8220;switch case&#8221; nativa. Esta aus\u00eancia pode ser um inc\u00f4modo para programadores acostumados a outras linguagens, mas o Python oferece diversas alternativas poderosas para alcan\u00e7ar o mesmo objetivo.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Neste artigo, exploraremos como implementar a funcionalidade de &#8220;switch case&#8221; em Python utilizando diferentes abordagens, incluindo o uso de cadeias if-elif-else, dicion\u00e1rios e a inovadora estrutura match-case introduzida no Python 3.10.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Por meio de exemplos pr\u00e1ticos e explica\u00e7\u00f5es detalhadas, demonstraremos como essas t\u00e9cnicas podem ser aplicadas para criar um c\u00f3digo claro, eficiente e f\u00e1cil de manter!<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">O que \u00e9 &#8220;Switch Case&#8221; no Python?\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Em Python, a estrutura &#8220;switch case&#8221; tradicionalmente encontrada em outras linguagens de programa\u00e7\u00e3o, como C, C++ ou Java, n\u00e3o existe.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Essas linguagens possuem uma sintaxe espec\u00edfica para o &#8220;switch case&#8221;, onde voc\u00ea pode verificar um valor contra m\u00faltiplas condi\u00e7\u00f5es de forma organizada e clara. No entanto, Python adota uma abordagem diferente para resolver esse problema, utilizando outras estruturas dispon\u00edveis na linguagem.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Vantagens do uso do switch case\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Abaixo est\u00e3o algumas das principais vantagens do uso do &#8220;switch case&#8221;:\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Clareza e Legibilidade\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Uma das principais vantagens do &#8220;switch case&#8221; \u00e9 a clareza e a legibilidade que ele proporciona. Cada caso \u00e9 claramente separado e identificado, o que facilita a leitura e compreens\u00e3o do c\u00f3digo. Isso \u00e9 especialmente \u00fatil quando se lida com m\u00faltiplas condi\u00e7\u00f5es que precisam ser verificadas contra um \u00fanico valor.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Efici\u00eancia de Execu\u00e7\u00e3o\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">O &#8220;switch case&#8221; \u00e9 geralmente mais eficiente do que uma cadeia de declara\u00e7\u00f5es if-else em muitas linguagens. Isso ocorre porque o compilador pode otimizar a estrutura &#8220;switch case&#8221; de forma mais eficaz, utilizando tabelas de salto ou outros mecanismos de otimiza\u00e7\u00e3o, resultando em um tempo de execu\u00e7\u00e3o mais r\u00e1pido.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Manuten\u00e7\u00e3o Facilitada\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A estrutura clara e organizada do &#8220;switch case&#8221; facilita a manuten\u00e7\u00e3o do c\u00f3digo. Adicionar, remover ou modificar casos individuais \u00e9 uma tarefa simples, reduzindo a chance de erros que podem ocorrer ao manipular longas cadeias de declara\u00e7\u00f5es if-else.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Redu\u00e7\u00e3o da Redund\u00e2ncia\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Ao usar &#8220;switch case&#8221;, \u00e9 poss\u00edvel reduzir a redund\u00e2ncia no c\u00f3digo, agrupando casos que executam a mesma l\u00f3gica. Em linguagens que suportam essa estrutura, m\u00faltiplos casos podem compartilhar a mesma instru\u00e7\u00e3o sem a necessidade de duplicar o c\u00f3digo.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Escalabilidade\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A estrutura &#8220;switch case&#8221; \u00e9 naturalmente escal\u00e1vel, permitindo que desenvolvedores adicionem novos casos conforme necess\u00e1rio, sem comprometer a legibilidade do c\u00f3digo. Isso \u00e9 particularmente \u00fatil em aplica\u00e7\u00f5es onde o n\u00famero de condi\u00e7\u00f5es pode crescer com o tempo.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Qual a sua sintaxe?\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Embora Python n\u00e3o tenha uma estrutura &#8220;switch case&#8221; nativa, ele oferece v\u00e1rias alternativas para alcan\u00e7ar o mesmo efeito.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Usando If-Elif-Else\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A abordagem mais direta \u00e9 usar uma cadeia de declara\u00e7\u00f5es if-elif-else:\u00a0<\/span><\/p>\n<p><b>if<\/b><span style=\"font-weight: 400;\">: Avalia a primeira condi\u00e7\u00e3o.\u00a0<\/span><\/p>\n<p><b>elif<\/b><span style=\"font-weight: 400;\">: Avalia condi\u00e7\u00f5es adicionais, se as anteriores forem falsas.\u00a0<\/span><\/p>\n<p><b>else<\/b><span style=\"font-weight: 400;\">: Opcional, define o caso padr\u00e3o se nenhuma das condi\u00e7\u00f5es anteriores for verdadeira.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Usando Dicion\u00e1rios\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Outra abordagem eficiente \u00e9 usar dicion\u00e1rios para mapear valores a fun\u00e7\u00f5es ou resultados:\u00a0<\/span><\/p>\n<p><b>Dicion\u00e1rio (cases)<\/b><span style=\"font-weight: 400;\">: Mapeia valores (chaves) a fun\u00e7\u00f5es ou resultados.\u00a0<\/span><\/p>\n<p><b>get(value, lambda: &#8220;Caso padr\u00e3o&#8221;)<\/b><span style=\"font-weight: 400;\">: Retorna a fun\u00e7\u00e3o correspondente ao valor ou uma fun\u00e7\u00e3o padr\u00e3o.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Usando Match-Case (Python 3.10+)\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A partir do Python 3.10, a estrutura match-case foi introduzida, fornecendo uma sintaxe mais elegante e poderosa:\u00a0<\/span><\/p>\n<p><b>match value<\/b><span style=\"font-weight: 400;\">: Inicia a estrutura de correspond\u00eancia com o valor a ser avaliado.\u00a0<\/span><\/p>\n<p><b>case valor<\/b><span style=\"font-weight: 400;\">: Define um caso espec\u00edfico a ser comparado com o valor.\u00a0<\/span><\/p>\n<p><b>case _<\/b><span style=\"font-weight: 400;\">: Define o caso padr\u00e3o, correspondendo a qualquer valor n\u00e3o capturado pelos casos anteriores.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Quando usar essa estrutura?\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Entender quando usar essas estruturas \u00e9 crucial para escrever c\u00f3digo claro, eficiente e f\u00e1cil de manter. A seguir, exploramos situa\u00e7\u00f5es em que essas abordagens s\u00e3o particularmente \u00fateis.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Verifica\u00e7\u00e3o de M\u00faltiplos Casos Simples\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Quando voc\u00ea precisa verificar um valor contra v\u00e1rias condi\u00e7\u00f5es discretas, o uso de if-elif-else ou match-case pode ser ideal. Essa situa\u00e7\u00e3o \u00e9 comum em casos onde uma vari\u00e1vel pode ter um conjunto limitado de valores conhecidos, e cada valor requer um tratamento espec\u00edfico.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Substitui\u00e7\u00e3o de Estruturas Longas de If-Elif-Else\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Quando voc\u00ea se encontra com uma longa cadeia de if-elif-else, especialmente se ela se torna dif\u00edcil de ler e manter, o uso de um dicion\u00e1rio para mapear valores a fun\u00e7\u00f5es pode simplificar significativamente o c\u00f3digo. Essa abordagem \u00e9 \u00fatil para evitar duplica\u00e7\u00e3o de c\u00f3digo e melhorar a legibilidade.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Implementa\u00e7\u00e3o de M\u00e1quinas de Estado\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">M\u00e1quinas de estado, que s\u00e3o usadas para modelar o comportamento de sistemas onde a sa\u00edda depende de uma sequ\u00eancia de eventos, podem se beneficiar do uso de dicion\u00e1rios ou match-case. Cada estado e transi\u00e7\u00e3o pode ser representado como um caso, facilitando a implementa\u00e7\u00e3o e manuten\u00e7\u00e3o da l\u00f3gica complexa.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Manuten\u00e7\u00e3o e Escalabilidade do C\u00f3digo\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Quando o c\u00f3digo precisa ser escal\u00e1vel e facilmente mantido, a escolha de usar match-case ou dicion\u00e1rios pode ser vantajosa. Adicionar novos casos ou modificar os existentes torna-se uma tarefa mais organizada e menos propensa a erros, especialmente quando comparada com a modifica\u00e7\u00e3o de longas cadeias de if-elif-else.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Como usar o Switch Case no Python em diferentes m\u00e9todos?\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Cada m\u00e9todo tem suas pr\u00f3prias vantagens e aplica\u00e7\u00f5es ideais.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">If-Elif-Else<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Use quando voc\u00ea tem um n\u00famero pequeno de casos e deseja manter a simplicidade. \u00c9 f\u00e1cil de entender e implementar, mas pode se tornar confuso em muitos casos.\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">def switch_case_if_elif_else(value):\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">if value == 1:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso 1\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">elif value == 2:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso 2\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">elif value == 3:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso 3\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">else:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso padr\u00e3o\"\u00a0<\/span>\r\n\r\n\r\n\r\n<span style=\"font-weight: 400;\">resultado = switch_case_if_elif_else(2)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">print(resultado)\u00a0 # Sa\u00edda: Caso 2\u00a0<\/span><\/pre>\n<p><b>Vantagens<\/b><span style=\"font-weight: 400;\">: Simplicidade e clareza para um pequeno n\u00famero de casos.\u00a0<\/span><\/p>\n<p><b>Desvantagens<\/b><span style=\"font-weight: 400;\">: Pode se tornar longo e dif\u00edcil de manter com muitos casos.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Dicion\u00e1rios\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Ideal para reduzir o c\u00f3digo redundante e melhorar a manuten\u00e7\u00e3o quando voc\u00ea tem muitas condi\u00e7\u00f5es discretas a serem verificadas. \u00c9 eficiente e elegante, mas requer compreens\u00e3o de fun\u00e7\u00f5es como valores.\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">def caso1():\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">return \"Caso 1\"\u00a0<\/span>\r\n\r\n\r\n<span style=\"font-weight: 400;\">def caso2():\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">return \"Caso 2\"\u00a0<\/span>\r\n\r\n\r\n<span style=\"font-weight: 400;\">def caso3():\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">return \"Caso 3\"\u00a0<\/span>\r\n\r\n\r\n<span style=\"font-weight: 400;\">def switch_case_dicionario(value):\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">cases = {\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">1: caso1,\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">2: caso2,\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">3: caso3\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">}\u00a0<\/span>\r\n\r\n\r\n<span style=\"font-weight: 400;\">resultado = switch_case_dicionario(2)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">print(resultado)\u00a0 # Sa\u00edda: Caso 2\u00a0<\/span><\/pre>\n<p><b>Vantagens<\/b><span style=\"font-weight: 400;\">: Redu\u00e7\u00e3o de redund\u00e2ncia e melhoria da legibilidade.\u00a0<\/span><\/p>\n<p><b>Desvantagens<\/b><span style=\"font-weight: 400;\">: Pode ser menos intuitivo para novatos que n\u00e3o est\u00e3o familiarizados com fun\u00e7\u00f5es como valores.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Match-Case<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">A escolha preferida se voc\u00ea estiver usando Python 3.10 ou superior. Proporciona uma maneira moderna e poderosa de lidar com m\u00faltiplos casos, com suporte adicional para correspond\u00eancia de padr\u00f5es.\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">def switch_case_match_case(value):\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">match value:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">case 1:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso 1\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">case 2:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso 2\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">case 3:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso 3\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">case _:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Caso padr\u00e3o\"\u00a0<\/span>\r\n\r\n\r\n<span style=\"font-weight: 400;\">resultado = switch_case_match_case(2)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">print(resultado)\u00a0 # Sa\u00edda: Caso 2\u00a0<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><b>Vantagens<\/b><span style=\"font-weight: 400;\">: Sintaxe clara e poderosa, suporte a correspond\u00eancia de padr\u00f5es complexos.\u00a0<\/span><\/p>\n<p><b>Desvantagens<\/b><span style=\"font-weight: 400;\">: Dispon\u00edvel apenas a partir do Python 3.10.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Outras Estruturas de Controle\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Al\u00e9m das alternativas ao &#8220;switch case&#8221; como o if-elif-else, dicion\u00e1rios, e o match-case introduzido no Python 3.10, o Python oferece uma ampla variedade de estruturas de controle de fluxo que s\u00e3o essenciais para a constru\u00e7\u00e3o de programas eficientes e leg\u00edveis.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Essas estruturas incluem condicionais (if, elif, else), la\u00e7os (for, while), e constru\u00e7\u00f5es de manipula\u00e7\u00e3o de exce\u00e7\u00f5es (try, except, finally). A seguir, exploramos essas estruturas em detalhes.\u00a0<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Estruturas de La\u00e7o\u00a0<\/span><\/h4>\n<h3><span style=\"font-weight: 400;\">For\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">O la\u00e7o for \u00e9 usado para iterar sobre uma sequ\u00eancia (como uma lista, tupla, dicion\u00e1rio, conjunto ou string).\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">def iterar_lista(lista):\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">for item in lista:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">print(item)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">iterar_lista([1, 2, 3, 4])\u00a0\r\n<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># Sa\u00edda:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 1\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 2\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 3\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 4\u00a0<\/span><\/pre>\n<p><b>for item in lista<\/b><span style=\"font-weight: 400;\">: Itera sobre cada item na sequ\u00eancia lista.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">While\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">O la\u00e7o while continua a executar o bloco de c\u00f3digo enquanto a condi\u00e7\u00e3o for verdadeira.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">def contagem_regressiva(n):\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">while n &gt; 0:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">print(n)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">n -= 1\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">print(\"Lan\u00e7ar!\")\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">contagem_regressiva(5)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># Sa\u00edda:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 5\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 4\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 3\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 2\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># 1\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\"># Lan\u00e7ar! <\/span><\/pre>\n<p><b>while<\/b><span style=\"font-weight: 400;\">: Executa o bloco de c\u00f3digo enquanto a condi\u00e7\u00e3o especificada for verdadeira.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Manipula\u00e7\u00e3o de Exce\u00e7\u00f5es<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Em programa\u00e7\u00e3o, a manipula\u00e7\u00e3o de exce\u00e7\u00f5es \u00e9 um m\u00e9todo para lidar com erros ou situa\u00e7\u00f5es inesperadas que podem ocorrer durante a execu\u00e7\u00e3o de um programa.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A manipula\u00e7\u00e3o de exce\u00e7\u00f5es no Python permite que voc\u00ea escreva c\u00f3digo forte que pode lidar com v\u00e1rios tipos de falhas sem interromper bruscamente o fluxo do programa.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Try-Except-Finally\u00a0<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">A estrutura try-except-finally \u00e9 usada para capturar e manipular exce\u00e7\u00f5es, garantindo que o programa possa lidar com erros de forma controlada.\u00a0<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">def dividir(a, b):\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">try:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">resultado = a \/ b\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">except ZeroDivisionError:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return \"Divis\u00e3o por zero n\u00e3o \u00e9 permitida\"\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">else:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">return resultado\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">finally:\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0<\/span> <span style=\"font-weight: 400;\">print(\"Opera\u00e7\u00e3o conclu\u00edda\")\u00a0\r\n<\/span>\r\n\r\n<span style=\"font-weight: 400;\">resultado = dividir(10, 2)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">print(resultado)\u00a0 #Sa\u00edda: 5.0<\/span>\r\n\r\n\r\n\r\n<span style=\"font-weight: 400;\">resultado = dividir(10, 0)\u00a0<\/span>\r\n\r\n<span style=\"font-weight: 400;\">print(resultado)\u00a0 # Sa\u00edda: Divis\u00e3o por zero n\u00e3o \u00e9 permitida\u00a0<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p><b>try<\/b><span style=\"font-weight: 400;\">: Define um bloco de c\u00f3digo a ser tentado.\u00a0<\/span><\/p>\n<p><b>except<\/b><span style=\"font-weight: 400;\">: Captura e trata exce\u00e7\u00f5es espec\u00edficas.\u00a0<\/span><\/p>\n<p><b>else<\/b><span style=\"font-weight: 400;\">: Opcional, executa um bloco de c\u00f3digo se nenhuma exce\u00e7\u00e3o for levantada.\u00a0<\/span><\/p>\n<p><b>finally<\/b><span style=\"font-weight: 400;\">: Executa um bloco de c\u00f3digo independentemente de ter ocorrido uma exce\u00e7\u00e3o ou n\u00e3o.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Compreender e utilizar essas estruturas de controle de fluxo de maneira eficaz \u00e9 crucial para qualquer desenvolvedor Python. A escolha da estrutura correta depende das necessidades espec\u00edficas do c\u00f3digo, da clareza e da manuten\u00e7\u00e3o desejadas.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mesmo sem uma estrutura nativa de &#8220;switch case&#8221;, o Python fornece todas as ferramentas necess\u00e1rias para implementar essa funcionalidade de forma eficiente, permitindo que os desenvolvedores escrevam um c\u00f3digo limpo, leg\u00edvel e f\u00e1cil de manter.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Gostou de aprender sobre as diferentes maneiras de implementar o &#8220;switch case&#8221; em Python? Se sim, voc\u00ea vai adorar explorar mais sobre como a Locaweb pode impulsionar seus projetos de Python!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Se voc\u00ea est\u00e1 em busca de uma hospedagem confi\u00e1vel e escal\u00e1vel para seus projetos Python, a Locaweb oferece op\u00e7\u00f5es de <\/span><a href=\"https:\/\/www.locaweb.com.br\/hospedagem-dedicada\/\"><span style=\"font-weight: 400;\">Hospedagem Dedicada<\/span><\/a><span style=\"font-weight: 400;\"> e <\/span><a href=\"https:\/\/www.locaweb.com.br\/servidor-vps\/\"><span style=\"font-weight: 400;\">Cloud VPS<\/span><\/a><span style=\"font-weight: 400;\"> que podem atender \u00e0s suas necessidades de desenvolvimento!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Em muitas linguagens de programa\u00e7\u00e3o, como C, C++ e Java, a estrutura &#8220;switch case&#8221; \u00e9 uma ferramenta essencial para o controle de fluxo, permitindo que um valor seja verificado contra m\u00faltiplas condi\u00e7\u00f5es de forma organizada e eficiente.\u00a0 Em Python, uma linguagem conhecida por sua simplicidade e legibilidade, n\u00e3o h\u00e1 uma&#8230;<\/p>\n","protected":false},"author":29,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[107],"ht-kb-tag":[],"class_list":["post-35509","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-criador-de-sites"],"_links":{"self":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/35509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/comments?post=35509"}],"version-history":[{"count":1,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/35509\/revisions"}],"predecessor-version":[{"id":35510,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb\/35509\/revisions\/35510"}],"wp:attachment":[{"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/media?parent=35509"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-category?post=35509"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.locaweb.com.br\/ajuda\/wp-json\/wp\/v2\/ht-kb-tag?post=35509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}