0Pricing
Python Academy · Aula

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.

Geradores — ilustração 1

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

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

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

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

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

Erros comuns com geradores

Erros comuns com geradores

Veja alguns erros que você deve evitar:

  • Usar return em vez de yield em 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 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 passar ao 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 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

  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 Academy