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 é:
- def enigma(n):
for i in range(n):
yield i
- def enigma(n):
for i in range(n):
return i
- def enigma(n):
for i in range(n):
if i == 0:
return i
else:
return (enigma3(n-1))
- def enigma(n):
return n * range(n)
- 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