Como usar o gerador Python Functions Howto

Como usar o gerador Python Functions Howto
A função do gerador funciona de maneira semelhante à função normal. Mas quando é hora de retornar um valor, usamos a função de rendimento em vez de retornar no Python. A função do gerador funciona com a ajuda de objetos geradores. Neste artigo, aprenderemos a diferença significativa entre as funções normais e o gerador.

Sintaxe

Rendimento de expressão

O rendimento de python retorna o objeto gerador. Estes são os objetos especiais que ajudam a obter o valor. Devido a isso, é iterado.

Ferramentas do gerador de python

Função do gerador:

Essas funções são definidas como uma função normal "def. Assim, o resultado é obtido um de cada vez.

Expressões geradoras:

Essas expressões funcionam de maneira semelhante às compreensões da lista. No entanto, eles diferem em um aspecto. À medida que retornam um objeto, ele mostra o resultado apenas quando exigido em vez de produzir as listas de resultados.

Exemplo

Uma ilustração simples para esclarecer o conceito de geradores é explicada abaixo. No começo, definiremos o gerador, como costumávamos definir uma função simples. Depois disso, imprimiremos a string e usaremos a palavra -chave de rendimento para retornar o valor.

Def Gen ()
Rendimento 10

Onde gen () é o nome de um gerador, toda vez que o rendimento é chamado, ele retorna o valor a ser exibido.

Para obter a saída no Linux, vá para o terminal do Ubuntu e escreva o seguinte comando:

$ python3 '/home/aqsa/documents/resultadotemp.py '

Onde o python3 é uma palavra -chave usada, usamos o caminho de um arquivo com a extensão de “.py ”, que mostra que o arquivo está escrito em Python.

A saída é a seguinte:

Você pode ver que a função de rendimento retornou cada linha por linha.

Diferença entre o gerador e as funções normais

Aqui, tomamos um exemplo para explicar a diferença entre uma função regular e o gerador com uma função de rendimento. A princípio, a função normal é definida:

Def function ()

Nesta função, apenas uma string é impressa como uma saída. Segundo, definimos um gerador.

Def Gerator ()

Isso produzirá a string como uma saída. Depois de definir a função e o gerador, permitiremos as chamadas de função e permitiremos que eles imprimam.

Imprimir (gerador ())

Agora, veremos a saída executando a mesma prática descrita acima.

A partir da saída, você pode ver que o resultado da função normal é obtido, mas o gerador mostrou algum tipo de erro. Portanto, há outra maneira de obter a saída usando o objeto do gerador. Tomamos o mesmo exemplo descrito acima para explicar a funcionalidade. Todo o código é o mesmo, mas o método de impressão do gerador é substituído pelo seguinte código:

Imprimir (Next (Gerator ()))

Este comando ajudará a recuperar a string escrita no gerador.

Agora, a partir da saída, você pode ver isso em vez de exibir a mensagem de erro. A saída desejada é obtida na forma de uma corda.

Obtenha/leia os valores da função do gerador

Existem diferentes funções que ajudam a obter a saída do gerador. Discutiremos dois deles um por um.

Lista ()

Uma lista é um objeto que contém seus valores dentro dos colchetes. Este objeto é iterável e exibe os valores com iterações. No gerador, as listas exibirão todos os valores que o gerador mantém. Além da lista, as funções loop () e a próxima () também são usadas para apresentar a saída.

Considere um exemplo no qual definimos um gerador chamado "função" na qual usamos um loop for para os números para iterar. Uma operação matemática é realizada nesta função. A função do gerador recebe um valor que é passado como um parâmetro quando essa função é chamada.

Para x no intervalo (n):
If (x%2 == 0):
Rendimento x

Este é o código principal da função do gerador:

Então, depois de encontrar o módulo, o valor resultante é retornado usando o rendimento. Em seguida, o procedimento adicional de impressão é feito através da função da lista que é a seguinte.

Imprimir (Lista (NUM))

Esta função fornece a saída na forma de uma lista. Por exemplo, a saída é mostrada abaixo:

Próximo()

A função a seguir exibirá o próximo valor em qualquer lista, matriz ou objeto. Se usarmos a próxima função em qualquer matriz vazia, ela mostrará uma mensagem de erro. Então, para obter o valor fino, a matriz ou lista não deve estar vazia. A mesma operação matemática é aplicada neste exemplo. No entanto, o método de impressão é diferente. Como 20 é o número aprovado como um parâmetro, os números serão obtidos até que 20 sejam atingidos na saída. Concluímos sete rodadas.

Imprimir (Próximo (NUM))

Agora, veremos a saída. Observe que todos os números pares são obtidos:

Série de números de Fibonacci e os geradores

Fibonacci Series é a sequência de números adquiridos adicionando os dois últimos números antes dela. Usamos o exemplo a seguir para entender a funcionalidade dos geradores. Nesta função, adotamos duas variáveis ​​que armazenam dois valores numéricos neles. Nós também adotamos uma variável de contagem. Esta função funcionará de tal maneira que verificará se o valor da contagem é menor que o número atual. Em seguida, ele adicionará os dois números anteriores e os salvará no próximo. O processo permanecerá até que o número 7 seja alcançado. Finalmente, o resultado é obtido usando o loop for ().

A saída do código afixado acima é o seguinte:

0, 1, 1, 2, 3, 5, 8

Chamada de função usando o rendimento

Este é o exemplo de chamar a função usando o rendimento. Em comparação, usamos a função quadrada no gerador.

Def GetSquare (n):
Teste de rendimento (i)

Através da função de rendimentos, usamos a chamada de função para obter a resposta:

A saída necessária é dada abaixo:

0, 1, 4, 9, 14, 25, 36, 49, 64, 81

Conclusão

Neste artigo, explicamos os exemplos de um gerador, como podemos obter a saída e a diferença entre o gerador e a função normal.