Instruções Switch Case

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como usar a nova declaração Switch Case do Python, também conhecida como Structural Pattern Matching (Correspondência Estrutural de Padrões), introduzida no Python 3.10. A declaração Switch Case nos permite corresponder padrões de uma forma mais fácil e legível em comparação com as declarações tradicionais if-elif-else.

Conquistas

  • Declarações Switch Case
  • Declarações if
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Comparação com as Instruções if do Python

Antes de mergulharmos nos exemplos da declaração Switch Case do Python, vamos compará-la com as declarações tradicionais if-elif-else.

Considere o seguinte exemplo de correspondência de códigos de resposta HTTP:

response_code = 200

if response_code == 200:
    print("OK")
elif response_code == 404:
    print("404 Not Found")
elif response_code == 500:
    print("Internal Server Error")

Podemos reescrever o mesmo exemplo usando a declaração Switch Case do Python da seguinte forma:

response_code = 201

match response_code:
    case 200:
        print("OK")
    case 404:
        print("404 Not Found")
    case 500:
        print("Internal Server Error")

Como pode ver, a declaração Switch Case do Python é mais concisa e fácil de ler em comparação com as declarações if-elif-else.

Aqui está a sintaxe para uma declaração switch case:

match term:
    case pattern-1:
        action-1
    case pattern-2:
        action-2
    case pattern-3:
        action-3
    case _:
        action-default

O term é o valor que você deseja corresponder aos padrões. O padrão pode ser um único valor, uma tupla, uma lista, uma classe embutida ou uma combinação destes usando o operador or (|). O _ é um padrão catch-all (pega-tudo) que corresponde a qualquer valor.

Correspondência com o Padrão 'or'

Neste exemplo, o caractere pipe (| ou or) permite que o Python retorne a mesma resposta para dois ou mais casos.

response_code = 502
match response_code:
    case 200 | 201:
        print("OK")
    case 500 | 502:
        print("Internal Server Error")

Isso imprimirá "Internal Server Error" porque o response_code é 500 ou 502.

Podemos usar o símbolo underscore _ para definir um caso padrão (default). Considere o seguinte exemplo:

response_code = 800

match response_code:
    case 200 or 201:
        print("OK")
    case 500 or 502:
        print("Internal Server Error")
    case _:
        print("Invalid Code")

Neste exemplo, a saída será "Invalid Code" porque o valor de response_code não é coberto por nenhum dos casos.

Correspondência com Classes Embutidas (Built-in)

Também podemos corresponder padrões com base em classes embutidas. Considere o seguinte exemplo:

response_code = ["300"]

match response_code:
    case int():
        print('response_code is a number')
    case str():
        print('response_code is a string')
    case list():
        print('response_code is a list')
    case _:
        print('response_code is a unknown type')

Isso imprimirá "response_code is a list" porque o response_code é uma lista.

Resumo

Neste laboratório, aprendemos como usar a instrução Switch Case do Python introduzida no Python 3.10. Comparamos com as instruções tradicionais if-elif-else e praticamos vários exemplos de correspondência de valores únicos, o padrão or, o comprimento de um iterável, o símbolo underscore para o caso padrão (default) e classes embutidas (built-in classes).

Espero que tenha gostado deste laboratório e aprendido algo novo!