Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida sobre o Match

Boa noite, o que eu preciso corrigir neste código para que o match funcione?

def determinar_quadrante():
    x = float(input("Digite a coordenada x: "))
    y = float(input("Digite a coordenada y: "))

    match x, y:
        case x > 0, y > 0:
            print('Primeiro Quadrante')
        case x < 0, y > 0:
            print('Segundo Quadrante')
        case x < 0, y < 0:
            print('Terceiro Quadrante. ')
        case x > 0, y < 0:
            print('Quarto Quadrante. ')
        case _:
            print('Origem. ') 

determinar_quadrante()
2 respostas
solução!

Olá, Rudhá! Como vai?

Para usarmos a estrutura match case do Python não podemos fazer comparações como >, <, ==, !=, etc., pois ela é mais usada para padrões de correspondência, como verificar se um objeto é de um determinado tipo ou valor, se uma lista tem um certo número de elementos, entre outros, respeitando a seguinte sintaxe:

match <expressão>:
      case <valor 1>:
              <instruções>
      case <valor 2>:
              <instruções>

Como no exemplo:

opcao = int(input("[1] Sacar \n[2] Extrato \n[0] Sair \n: "))

match opcao:
      case 1:
              print("Sacando...")
      case 2:
              print("Exibindo o extrato...")

Dessa forma, a solução mais adequada para o nosso código seria usar a estrutura if elif else, conforme sugerido no exercício, deixando o nosso código de acordo com o exemplo abaixo:

def determinar_quadrante():
    x = float(input("Digite a coordenada x: "))
    y = float(input("Digite a coordenada y: "))

    if x > 0 and y > 0:
        print('Primeiro Quadrante')
    elif x < 0 and y > 0:
        print('Segundo Quadrante')
    elif x < 0 and y < 0:
        print('Terceiro Quadrante.')
    elif x > 0 and y < 0:
        print('Quarto Quadrante.')
    else:
        print('Origem.')

determinar_quadrante()

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

Olá Sarah, isso é interessante e não está claro no curso, pois diz que é uma preferência nossa escolher se vamos usar a estrutura IF ou MATCH, eu fiquei quase 2 horas também tentando fazer uma estrutura funcionar usando match e desisti, depois ela só funcionava com IF.