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?
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?
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!