Geradores
Entenda os geradores e seu uso na criação de iteradores
Geradores é uma aula grátis de Python For Kids 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 For Kids, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python For Kids inclui 5 aulas no total.
Introdução aos geradores
Os geradores são um tipo especial de iterador no Python que permite iterar sobre dados de forma preguiçosa. Em vez de retornar todos os dados de uma vez, eles produzem um item por vez, usando pouca memória.
Nesta lição, você aprenderá a criar e usar geradores no Python.

O que é um gerador?
Um gerador é uma função que usa a palavra-chave yield para retornar valores um de cada vez. Cada chamada ao método next() do gerador retoma a execução do ponto em que ele produziu um valor pela última vez.
# 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
Os geradores salvam o estado da função para que possam retomar a execução exatamente de onde pararam. Isso faz com que usem pouca memória e sejam 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
As expressões geradoras são semelhantes às compreensões de listas, 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
Os geradores usam menos memória do que as listas porque não armazenam todos os dados na memória. Em vez disso, eles 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
Os geradores são ideais para:
- Processar grandes conjuntos de dados que não cabem na memória.
- Gerar sequências infinitas.
- Avaliar dados de forma preguiçosa.
Geradores infinitos
Os geradores podem produzir sequências infinitas, como uma sequência interminável de números. Certifique-se de interromper o loop 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 yields
As funções geradoras podem ter 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
Aqui estão alguns erros que você deve evitar:
- Usar
returnem vez deyieldem uma função geradora. - Não consumir o gerador com um loop ou com
next(). - Usar geradores para pequenos conjuntos de dados, quando as listas são mais adequadas.
O Que Aprendemos?
Nesta lição, você aprendeu:
- O que são geradores e como 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 avançar para o 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 For Kids, atualize para CoddyKit PRO. O curso de Python For Kids 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 For Kids 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 For Kids?
Nenhuma experiência prévia é necessária. Python For Kids 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 For Kids?
Sim. Cada aula de Python For Kids 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