FC ConcursosFC Concursos

Questão FC331153

Analise o código Python a seguir. for num in enigma(10): print(num) Dado que a execução desse código exibe 10 números inteiros, a formulação correta para a função enigma é:

Linguagens de Programação

FGV · 2023

Analise o código Python a seguir.

 

for num in enigma(10):
      print(num)

 

Dado que a execução desse código exibe 10 números inteiros, a formulação correta para a função enigma é:

  1. def enigma(n):

                for i in range(n):

                     yield i

  2. def enigma(n):

                for i in range(n):

                     return i

  3. def enigma(n):

             for i in range(n):

                   if i == 0:

                      return i

                  else:

                       return (enigma3(n-1))

  4. def enigma(n):

                return n * range(n)

  5. def enigma(n):

                return n!

Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A definição def enigma(n): for i in range(n): yield i cria uma função que recebe o parâmetro n e produz uma sequência de valores usando yield.

O construto range(n) gera os inteiros de \(0\) até \(n-1\). A cada iteração o yield entrega o valor atual e mantém o estado da função para a próxima chamada.

Assim, ao escrever for num in enigma(10): print(num), a chamada enigma(10) retorna um generator que fornece, sucessivamente, os valores \(0,1,\dots,9\), totalizando 10 números.

Essa abordagem é eficiente em memória, pois os valores são gerados sob demanda (lazy evaluation) em vez de serem armazenados todos de uma vez.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo