Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Onde errei neste código?

Número = int(input('Insira um número: '))
match Número % 2 == 0:
   case 1:
     print('Número Par')
   case 2:
     print('Número ímpar')
    case _:
      print('Número inválido')

Onde está o erro?

1 resposta
solução!

Fala ai Nicolas, tudo bem?

A ideia do match no Python é executar um trecho de código caso a condição informada retorne um valor especifico, ou seja, ela só vai executar uma instrução se o valor passado na condição for exatamente o mesmo que um dos casos. Vamos a um exemplo simples:

meu_numero = 1

match meu_numero:
     case 1:
          print("Olá")
     case 2:
          print("Tchau") 

No código acima, a variável que estou passando como condição tem o valor 1, logo ela caiu na condição com o valor 1. É como se fizessemos um:

if meu_numero == 1:
    print("Olá")

Podemos usar Strings também:

usuario = "joao"

match usuario:
     case "joao":
          print("Seja bem-vindo")
     case _:
          print("Usuario incorreto") 

Além disso, podemos usar Boolean:

estuda_na_alura = True

match estuda_na_alura:
     case True:
          print("Ai sim!")
     case False:
          print("Tem que cursar po") 

E é ai que chegamos ao problema do seu código. Ele está passando Número % 2 == 0 para o match, ou seja, está passando um Boolean. Só que, você tenta tratar os casos como Number, sendo que Número % 2 == 0 vai retornar True ou False.

Para resolver isso é só tratarmos os casos True e False ao invés de 1 e 2, conforme o código abaixo:

Numero = int(input('Insira um número: '))
match Numero % 2 == 0:
    case True:
        print('Número Par') 
        
    case False:
        print('Número ímpar')

Espero ter te ajudado. Se tiver alguma dúvida é só responder aqui no fórum. Bons estudos!