0Pricing
Learn AI with Python · Aula

Geradores

Entenda os geradores e seu uso na criação de iteradores

Geradores é uma aula grátis de Learn AI with Python 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 Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 5 aulas no total.

Introdução aos geradores

Introdução aos geradores

Geradores são um tipo especial de iterador em Python que permite percorrer dados de forma preguiçosa. Em vez de retornar todos os dados de uma vez, eles fornecem um item por vez, usando a memória de forma eficiente.

Nesta lição, você aprenderá a criar e usar geradores em 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 de cada 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 salvam o estado da função para que possam retomar a execução exatamente do ponto em que pararam. Isso faz com que sejam eficientes no uso da memória e 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 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 em comparação com listas

Geradores em comparação com listas

Os geradores usam a memória de forma mais eficiente do que as listas, pois 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

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

Geradores infinitos

Os geradores podem produzir sequências infinitas, como uma sequência interminável de números. Certifique-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 fornecidos

Funções geradoras com vários valores fornecidos

As funções geradoras podem ter várias instruções yield, permitindo que você crie 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

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 laço ou com next().
  • Usar geradores para pequenos conjuntos de dados, quando as listas são mais apropriadas.

O que aprendemos?

O que aprendemos?

Nesta lição, você aprendeu:

  • O que são geradores e como eles funcionam em Python.
  • Como usar yield para criar funções geradoras.
  • As diferenças entre geradores e listas.
  • Casos de uso de geradores, como sequências infinitas e grandes conjuntos de dados.

Muito bem! Vamos passar 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 Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 5 aulas no total.

O que vou aprender em “Geradores”?

Entenda os geradores e seu uso na criação de iteradores Você pratica Learn AI with Python 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 Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python 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 Learn AI with Python?

Sim. Cada aula de Learn AI with Python 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 Learn AI with Python