Playground Python: tipos, dataclasses e decoradores no navegador
O mesmo Python de verdade das etapas anteriores, agora com os temas do avançado: type hints, dataclasses, lru_cache, decoradores com argumentos, context managers e métodos dunder. Complete cada desafio, execute e receba a correção na hora. Acertar soma XP.
Desafio 1 de 8
Contrato com type hints
Complete a função com type hints: recebe uma lista de inteiros e devolve a soma (int). Teste com [10, 20, 12]. Esperado: 42
Desafio 2 de 8
Uma dataclass
Use @dataclass para criar Ponto com x e y (int) e mostre uma instância. O __repr__ vem de graça. Esperado: Ponto(x=3, y=4)
Desafio 3 de 8
Memoização com lru_cache
Use @lru_cache para memoizar a função fib (Fibonacci). Some fib(10). Esperado: 55
Desafio 4 de 8
Decorador com argumento
Complete o decorador repetir(vezes) para chamar a função esse tanto de vezes. Com repetir(3) sobre oi(), deve imprimir 'oi' tres vezes.
Desafio 5 de 8
Um context manager
Use @contextmanager para criar 'secao' que imprime 'inicio' antes e 'fim' depois do bloco with. Dentro do with, imprima 'meio'. Esperado, em ordem: inicio / meio / fim
Desafio 6 de 8
Pipeline de geradores
Complete o gerador pares() para produzir só os números pares de nums. Some o resultado. Esperado: 12 (2+4+6)
Desafio 7 de 8
Validação com property
Complete o setter de 'idade' para levantar ValueError se for negativa. Ao tentar -5, o programa deve imprimir 'invalida'. Com 30, imprime a idade.
Desafio 8 de 8
Métodos dunder
Complete __len__ para devolver a quantidade de itens do Carrinho. Esperado: 3