0Pricing
Python For Kids · Aula

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.

Geradores — ilustração 1

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: 3

Como 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, 4

Expressõ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, 16

Geradores 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, 5

Funçõ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, Third

Erros comuns com geradores

Aqui estão alguns erros que você deve evitar:

  • Usar return em vez de yield em 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 yield para 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.

Geradores — ilustração 11

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

  1. Decoradores
  2. Geradores
  3. Gerenciadores de contexto (instruções with)
  4. Compreensões (de listas, conjuntos e dicionários)
  5. Iteradores e iteráveis
← Voltar para Python For Kids