Pitão

Gerador Python

Gerador Python
Neste tópico, aprenderemos Gerador Python.

Definição: Um gerador é como uma função normal que gera uma gama de valores usando o produção palavra-chave. Ele retorna um objeto por vez. Ele usa internamente um iterador. Para acessar o próximo elemento Next() função é usada, ou podemos usá-la para uma volta. Se tentarmos acessar o valor fora do intervalo, ele aumentará um StopIteration erro.

Veremos alguns exemplos para entender melhor

Ex: função geradora para faixa de valores

def range_fun (n):
x = 0
enquanto x < n:
rendimento x
x + = 1
y = intervalo_fun (3)
#call usando for loop
print ('Gerar valores usando o método next ()')
para i em range_fun (3):
imprimir (i)
#call generator usando o próximo método
print ('Gerar valores usando o método de loop')
imprimir (próximo (y))
imprimir (próximo (y))
imprimir (próximo (y))
print (next (y)) # Exceção de parada de iteração será gerada

Ex: Função geradora para a série Fibonacci

def fib_fun (n):
x, y = 0, 1
enquanto x < n:
rendimento x
x, y = y, x + y
z = fib_fun (6) objeto #generator
print ('Gerar valores usando o método next ()')
imprimir (próximo (z))
imprimir (próximo (z))
imprimir (próximo (z))
imprimir (próximo (z))
imprimir (próximo (z))
imprimir (próximo (z))
print ('Gerar valores usando o método de loop')
para i em fib_fun (6):
imprimir (i)

Ex: Função geradora para criar faixa de valores, dados os valores inicial e final.

def my_range (início, fim):
current = start
enquanto atual < end:
rendimento atual
atual + = 1
print ('Gerar valores usando o método next ()')
nums = my_range (1,5)
imprimir (próximo (nums))
imprimir (próximo (nums))
imprimir (próximo (nums))
imprimir (próximo (nums))
print ('Gerar valores usando o método de loop')
para num em my_range (1,5):
imprimir (num)

Ex: Gerador para multiplicar cada número (menos que um número) por um número

def gen_mulby_num (max, num):
n = 0
enquanto n < max:
rendimento n * num
n + = 1
para i em gen_mulby_num (5,3):
imprimir (i)

Ex: Gerador para encontrar cubo para intervalo de valores

def gen_mulby_num (max, num):
n = 0
enquanto n < max:
rendimento n * num
n + = 1
para i em gen_mulby_num (5,3):
imprimir (i)

Ex: múltiplos geradores: encontre o quadrado dos números pares gerados a partir de um número

Gerador 1: gerar valores pares a partir de um determinado número

Gerador 2: gerar números quadrados a partir dos valores do gerador1

def gen_even (m):
n = 0
enquanto n < m:
se n% 2 == 0:
rendimento n
n + = 2
def gen_square (nums):
para num em nums:
rendimento 2 * num
para n em gen_square (gen_even (15)):
imprimir (n)


Ex: Múltiplos geradores: crie a série fibnacci e agregue valor 10 a cada número.

Generator1: gera séries de fibonacci a partir de um determinado número

Generator2: some cada número por 10 do generator1

def gen_fib (n):
x, y = 0, 1
enquanto x < n:
rendimento x
x, y = y, x + y
def gen_add_10 (nums):
para num em nums:
rendimento 10 + num
para n em gen_add_10 (gen_fib (5)):
imprimir (n)


Compreensões do gerador:

As compreensões do gerador são semelhantes às compreensões de lista em que a lista usa colchetes; isto usa parênteses normais.

Ex:

nums = (i para i no intervalo (10))
imprimir (tipo (nums))
imprimir (lista (nums))

Diferença entre gerador e função normal:

  1. Um gerador fornece valores usando produção palavra-chave onde a função normal usa o Retorna palavra-chave
  2. O gerador começa de onde parou na próxima vez. A função normal executa todas as instruções todas as vezes.
  3. O gerador economiza memória, pois retorna um valor de cada vez. Então, podemos usá-lo para gerar valores infinitos.

Conclusão:

O Generator é muito útil quando estamos lidando com dados enormes / grandes. Em um determinado momento, ele contém apenas uma única parte dos dados, em vez de dados inteiros. O conceito de geradores é considerado um conceito avançado em python.

Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...
Melhores distros Linux para jogos em 2021
O sistema operacional Linux percorreu um longo caminho desde sua aparência original, simples e baseada em servidor. Este sistema operacional melhorou ...