Geradores
Entenda os geradores e seu uso na criação de iteradores.
Geradores é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 2 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 5 aulas no total.
Introdução aos geradores
Introdução aos geradores
Os geradores são um tipo especial de iterador no Python que permite percorrer dados sob demanda. Em vez de retornar todos os dados de uma só vez, eles geram um item por vez, o que economiza memória.
Nesta lição, você aprenderá a criar e usar geradores no Python.

O que é um gerador?
O que é um gerador?
Um gerador é uma função que usa a palavra-chave yield para retornar valores um por vez. Cada chamada ao método next() do gerador retoma a execução a partir do ponto em que ele produziu o último valor.
# Basic generator example
def my_generator():
yield 1
yield 2
yield 3
# Using the generator
gen = my_generator()
print(next(gen)) # Outputs: 1
print(next(gen)) # Outputs: 2
print(next(gen)) # Outputs: 3Como os geradores funcionam
Como os geradores funcionam
Os geradores preservam o estado da função para que possam retomar a execução exatamente do ponto em que pararam. Isso economiza memória e os torna ideais para grandes conjuntos de dados.
# Example: Generating a range of numbers
def range_generator(start, end):
while start < end:
yield start
start += 1
for number in range_generator(1, 5):
print(number) # Outputs: 1, 2, 3, 4Expressões geradoras
Expressões geradoras
As expressões geradoras são semelhantes às compreensões de lista, mas usam parênteses em vez de colchetes. Elas criam geradores em vez de listas.
# Generator expression
gen_exp = (x * x for x in range(5))
for value in gen_exp:
print(value) # Outputs: 0, 1, 4, 9, 16Geradores versus listas
Geradores versus listas
Os geradores usam a memória com mais eficiência do que as listas, pois não armazenam todos os dados na memória. Em vez disso, geram os dados conforme necessário.
# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]
# Generator expression
gen_exp = (x * x for x in range(1000000))
# List comprehension uses more memory
print(type(list_comp)) # Outputs: <class 'list'>
print(type(gen_exp)) # Outputs: <class 'generator'>Casos de uso dos geradores
Casos de uso dos geradores
Os geradores são ideais para:
- Processar grandes conjuntos de dados que não cabem na memória.
- Gerar sequências infinitas.
- Realizar a avaliação tardia dos dados.
Geradores infinitos
Geradores infinitos
Os geradores podem produzir sequências infinitas, como uma sequência interminável de números. Lembre-se de interromper o laço para evitar uma execução infinita.
# Infinite generator example
def infinite_sequence():
num = 0
while True:
yield num
num += 1
# Using the infinite generator
for i in infinite_sequence():
if i > 5:
break
print(i) # Outputs: 0, 1, 2, 3, 4, 5Funções geradoras com vários valores produzidos
Funções geradoras com vários valores produzidos
As funções geradoras podem conter várias instruções yield, permitindo criar sequências complexas:
# Multiple yields in a generator
def multi_yield():
yield "First"
yield "Second"
yield "Third"
for value in multi_yield():
print(value) # Outputs: First, Second, ThirdErros comuns com geradores
Erros comuns com geradores
Veja alguns erros que você deve evitar:
- Usar
returnem vez deyieldem uma função geradora. - Não consumir o gerador com um laço ou
next(). - Usar geradores para conjuntos de dados pequenos, nos quais as listas são mais adequadas.
O que aprendemos?
O que aprendemos?
Nesta lição, você aprendeu:
- O que são geradores e como eles funcionam no Python.
- Como usar
yieldpara criar funções geradoras. - As diferenças entre geradores e listas.
- Casos de uso dos geradores, como sequências infinitas e grandes conjuntos de dados.
Muito bem! Vamos passar ao próximo tópico.

Perguntas Frequentes
A aula “Geradores” é grátis?
Sim — o texto completo de “Geradores” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 5 aulas no total.
O que vou aprender em “Geradores”?
Entenda os geradores e seu uso na criação de iteradores. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 5.
Quanto tempo leva a aula “Geradores”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Decoradores
- Geradores
- Gerenciadores de contexto (instruções with)
- Compreensões (de listas, conjuntos e dicionários)
- Iteradores e iteráveis