Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Funções Geradoras | Especificação do Valor de Retorno da Função
Tutorial de Funções em Python

bookFunções Geradoras

Uma função geradora é um tipo especial de função que utiliza a palavra-chave yield em vez de return para gerar uma sequência de valores. Quando uma função geradora é chamada, ela retorna um objeto iterador, que pode ser percorrido para recuperar valores um de cada vez.
A principal vantagem das funções geradoras é a sua eficiência de memória. Funções geradoras produzem valores sob demanda, conforme necessário, em vez de gerar toda a sequência de uma só vez. Isso as torna eficientes em termos de memória, especialmente ao lidar com grandes conjuntos de dados ou sequências infinitas.

Veja o exemplo de um gerador simples. Esta função é um gerador que produz logins um a um a partir da lista fornecida:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

O princípio de um gerador é permitir que valores sejam retornados um de cada vez utilizando a palavra-chave yield, sem armazená-los todos na memória ao mesmo tempo. No exemplo apresentado, o gerador unique_logins_from_list percorre a lista de logins, retornando cada um com yield e pausando nesse ponto. Quando next() é chamado, o gerador retoma de onde parou, fornecendo valores de forma eficiente sem a necessidade de armazenar toda a lista na memória simultaneamente. Isso torna os geradores especialmente úteis para manipulação de grandes conjuntos de dados ou fluxos de dados.

Tarefa

Swipe to start coding

Gerar IDs de usuário únicos utilizando uma função geradora. A função id_generator() deve produzir continuamente identificadores como "ID_1", "ID_2", etc.

  1. Inicializar a variável count com o valor 1, pois os identificadores começam em 1.
  2. Utilizar um laço while infinito para gerar identificadores continuamente.
  3. Utilizar yield para retornar o identificador atual no formato f"ID_{count}".
  4. Incrementar count em 1 após cada iteração.
  5. Inicializar o objeto gerador id_gen chamando id_generator().

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 4.35

bookFunções Geradoras

Deslize para mostrar o menu

Uma função geradora é um tipo especial de função que utiliza a palavra-chave yield em vez de return para gerar uma sequência de valores. Quando uma função geradora é chamada, ela retorna um objeto iterador, que pode ser percorrido para recuperar valores um de cada vez.
A principal vantagem das funções geradoras é a sua eficiência de memória. Funções geradoras produzem valores sob demanda, conforme necessário, em vez de gerar toda a sequência de uma só vez. Isso as torna eficientes em termos de memória, especialmente ao lidar com grandes conjuntos de dados ou sequências infinitas.

Veja o exemplo de um gerador simples. Esta função é um gerador que produz logins um a um a partir da lista fornecida:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

O princípio de um gerador é permitir que valores sejam retornados um de cada vez utilizando a palavra-chave yield, sem armazená-los todos na memória ao mesmo tempo. No exemplo apresentado, o gerador unique_logins_from_list percorre a lista de logins, retornando cada um com yield e pausando nesse ponto. Quando next() é chamado, o gerador retoma de onde parou, fornecendo valores de forma eficiente sem a necessidade de armazenar toda a lista na memória simultaneamente. Isso torna os geradores especialmente úteis para manipulação de grandes conjuntos de dados ou fluxos de dados.

Tarefa

Swipe to start coding

Gerar IDs de usuário únicos utilizando uma função geradora. A função id_generator() deve produzir continuamente identificadores como "ID_1", "ID_2", etc.

  1. Inicializar a variável count com o valor 1, pois os identificadores começam em 1.
  2. Utilizar um laço while infinito para gerar identificadores continuamente.
  3. Utilizar yield para retornar o identificador atual no formato f"ID_{count}".
  4. Incrementar count em 1 após cada iteração.
  5. Inicializar o objeto gerador id_gen chamando id_generator().

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
single

single

some-alt