Exercícios

Geradores e Iteradores em Python

Avalie seus conhecimentos sobre geradores e iteradores em Python neste questionário. Explore o protocolo de iteração com iter() e next(), o uso de yield e yield from, o comportamento de send(), close() e StopIteration, além das vantagens de memória das expressões geradoras em comparação às compreensões de lista. As questões também abordam geradores consumidos, valores padrão em next(), a função iter com sentinela, a execução preguiçosa de funções geradoras e cuidados ao utilizar itertools.tee. Ideal para praticar conceitos essenciais de Python e compreender como processar sequências de forma eficiente.

Responda às questões abaixo e confira a explicação de cada resposta.

0/15 respondidas

  1. 1

    Quais métodos formam a base do protocolo de iteradores em Python?

  2. 2

    O que acontece com a execução de uma função geradora quando ela encontra a instrução yield?

    Questão 2
  3. 3

    Por que um gerador pode consumir menos memória do que uma lista ao processar uma grande sequência?

    Questão 3
  4. 4

    Qual exceção indica que um iterador não possui mais itens disponíveis?

  5. 5

    Qual expressão cria um gerador que produz os quadrados dos números de 0 a 4?

  6. 6

    Considere: def dobro(): x = yield 10; yield x * 2. Após criar g = dobro(), quais valores são devolvidos, respectivamente, por next(g) e g.send(7)?

  7. 7

    Qual é a principal finalidade da expressão yield from em uma função geradora?

    Questão 7
  8. 8

    Uma função sem argumentos fornece, em chamadas sucessivas, os valores 8, 5, 0 e 9. Qual lista é formada por list(iter(funcao, 0))?

    Questão 8
  9. 9

    O que ocorre ao tentar percorrer novamente um objeto gerador que já foi completamente consumido?

  10. 10

    Em um gerador que executa yield 1 e depois return 42, o que acontece na chamada que tenta avançar após o valor 1?

  11. 11

    Qual é o efeito de chamar close() em um gerador suspenso?

  12. 12

    Qual cuidado é relevante ao usar itertools.tee para criar dois iteradores a partir de uma única fonte?

    Questão 12
  13. 13

    Se um iterador está esgotado, qual é o resultado de next(iterador, "fim")?

  14. 14

    Considere: def numeros(): print("A"); yield 1; print("B"). Em seguida: g = numeros(); print("C"); next(g). Qual é a ordem das mensagens impressas?

    Questão 14
  15. 15

    Qual afirmação descreve corretamente a diferença entre uma compreensão de lista e uma expressão geradora equivalentes?

Baixe o Aplicativo agora para ter acesso a + de 5000 cursos gratuitos, exercícios, certificado e muito conteúdo sem pagar nada!

  • Cursos online 100% gratuitos do início ao fim

    Milhares de cursos online em vídeo, ebooks e áudiobooks.

  • Mais de 60 mil exercícios gratuitos

    Para testar seus conhecimentos no decorrer dos cursos online

  • Certificado Digital gratuito válido em todo o Brasil

    Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail

Aplicativo Cursa na tela de ebook, na tela de curso em vídeo e na tela de exercícios do curso, mais o certificado de conclusão de curso