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

[Dúvida] 2) prática: Qual a idade

usuário_input = int(input("Qual é a sua idade?"))
match usuário_input:
case idade x<=12:
print("Criança")
case idade x=>13:
print("Adolescente")
case_:
print("Adulto")

Não entendi porque não tá rodando

2 respostas
solução!

Olá, Ionara! Como vai?

O problema está na forma como você escreveu o match-case.

No Python, o match não funciona como um if com condições. Ele serve para comparar padrões literais ou estruturas, não expressões lógicas.

No seu código:

match usuário_input:
    case idade x <= 12:
        print("Criança")
    case idade x >= 13:
        print("Adolescente")
    case_:
        print("Adulto")

Isso não é uma sintaxe válida em Python.

Como corrigir


Se você quer verificar faixas de idade, o mais adequado é usar if elif else:

usuário_input = int(input("Qual é a sua idade? "))

if usuário_input <= 12:
    print("Criança")
elif usuário_input >= 13 and usuário_input <= 17:
    print("Adolescente")
else:
    print("Adulto")

Se quiser usar match-case


O match-case funcionaria assim:

usuário_input = int(input("Qual é a sua idade? "))

match usuário_input:
    case 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12:
        print("Criança")
    case 13 | 14 | 15 | 16 | 17:
        print("Adolescente")
    case _:
        print("Adulto")

Perceba que você precisa listar os valores possíveis, porque o match não aceita operadores relacionais (<=, >=).

Minha sugestão: use if elif else para intervalos e match-case apenas quando quiser comparar valores exatos ou padrões específicos.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Sim,a judou muito. Obrigada Daniel.
É que tenho mania de quando aprendo algo novo, acho que serve como único, tipo dá para todos os aspectos.
Mas realmente o código fica mais extenso e trabalhoso nesse caso com match. Dessa vez não deu,match. kkk