Boa tarde,
Temos dois problemas em seu script:
1 - os critérios definidos no if e no elif precisam ser ajustados, pois você está fazendo duas verificações para um mesmo intervalo numérico. O correto seria assim:
idade entre 0 a 12 -> criança
idade entre 13 a 18 -> jovem
qualquer outro número informado -> adulto
Ajuste para o exemplo fornecido na aula e dará certo:
idade = int(input("Digite sua idade: "))
if 0 < idade <= 12:
print("Criança")
elif 12 < idade < 18:
print("Adolescente")
elif idade >= 18:
print("Adulto")
else:
print("Valor inválido!")
2 - Ainda sobre a condição validada no elif, confesso que não entendi muito bem quando fiz o exercício, então resolvi dar uma pesquisada vendo que sua dúvida era a mesma minha.
Dando uma olhada na documentação do Python (https://docs.python.org/pt-br/3/reference/expressions.html, seção 6.10 - Comparações) temos o seguinte:
"As comparações podem ser encadeadas arbitrariamente, por exemplo, x < y <= z é equivalente a x < y and y <= z, exceto que y é avaliado apenas uma vez (mas em ambos os casos z não é avaliado quando x < y é considerado falso)."
Vamos imaginar que no seu exemplo você capture do usuário o número 12. 13 é menor do que 12? Não! Então a segunda comparação do elif, que seria verificar se a idade é menor ou igual 18 nem será feita:
13 < idade <= 18
Você pode testar se o Python retorna True ou False em uma operação dessa forma: print(13 < idade)
Para facilitar seu entendimento, crie um script bem simples, como o exemplo abaixo, e digite um número menor ou igual a 13. Aí entenderá melhor:
qual_sua_idade = input('Qual sua idade? ')
idade = int(qual_sua_idade)
if 13 < idade <= 18:
print(f'Idade {idade}')
Espero ter ajudado.