Krajta

Generátor Pythonu

Generátor Pythonu
V tomto tématu se naučíme generátor Pythonu.

Definice: Generátor je jako normální funkce, která generuje řadu hodnot pomocí výtěžek klíčové slovo. Vrací jeden objekt najednou. Interně používá iterátor. Pro přístup k dalšímu prvku další() funkce je použita, nebo ji můžeme použít pro smyčka. Pokud se pokusíme získat přístup k hodnotě mimo rozsah, vyvolá to a StopIterace chyba.

Uvidíme nějaký příklad, abychom lépe porozuměli

Příklad: funkce generátoru pro rozsah hodnot

def range_fun (n):
x = 0
zatímco x < n:
výnos x
x + = 1
y = range_fun (3)
#call pomocí smyčky for
print ('Generovat hodnoty pomocí metody next ()')
pro i v range_fun (3):
tisk (i)
#call generátor pomocí další metody
print ('Generovat hodnoty pomocí metody pro smyčku')
tisk (další (y))
tisk (další (y))
tisk (další (y))
print (next (y)) # Stop Iterační výjimka bude vyvolána

: Funkce generátoru pro řadu Fibonacci

def fib_fun (n):
x, y = 0, 1
zatímco x < n:
výnos x
x, y = y, x + y
z = fib_fun (6) #generator object
print ('Generovat hodnoty pomocí metody next ()')
tisk (další (z))
tisk (další (z))
tisk (další (z))
tisk (další (z))
tisk (další (z))
tisk (další (z))
print ('Generovat hodnoty pomocí metody pro smyčku')
pro i in fib_fun (6):
tisk (i)

: Funkce generátoru pro vytváření rozsahu hodnot zadaných počátečních a koncových hodnot.

def my_range (začátek, konec):
proud = start
zatímco aktuální < end:
výtěžný proud
aktuální + = 1
print ('Generovat hodnoty pomocí metody next ()')
nums = my_range (1,5)
tisk (další (čísla))
tisk (další (čísla))
tisk (další (čísla))
tisk (další (čísla))
print ('Generovat hodnoty pomocí metody pro smyčku')
pro num in my_range (1,5):
tisk (počet)

: Generátor pro vynásobení každého čísla (menšího než číslo) číslem

def gen_mulby_num (max, num):
n = 0
zatímco n < max:
výtěžek n * num
n + = 1
pro i v gen_mulby_num (5,3):
tisk (i)

: Generátor pro vyhledání krychle pro rozsah hodnot

def gen_mulby_num (max, num):
n = 0
zatímco n < max:
výtěžek n * num
n + = 1
pro i v gen_mulby_num (5,3):
tisk (i)

: více generátorů: najděte druhou mocninu sudých čísel vygenerovaných z čísla

Generátor 1: generuje sudé hodnoty z daného čísla

Generátor 2: vygenerujte čtvercová čísla z hodnot generátoru1

def gen_even (m):
n = 0
zatímco n < m:
pokud n% 2 == 0:
výtěžek č
n + = 2
def gen_square (čísla):
pro číslo v číslech:
výtěžek 2 * počet
pro n in gen_square (gen_even (15)):
tisk (n)


: Více generátorů: vytvořte řadu Fibnacci a přidejte hodnotu 10 každému číslu.

Generátor1: generuje řadu fibonacci z daného čísla

Generátor2: přidejte každé číslo o 10 z generátoru1

def gen_fib (n):
x, y = 0, 1
zatímco x < n:
výnos x
x, y = y, x + y
def gen_add_10 (čísla):
pro číslo v číslech:
výnos 10 + počet
pro n v gen_add_10 (gen_fib (5)):
tisk (n)


Pochopení generátoru:

Pochopení generátoru jsou podobná porozumění seznamu, kde seznam používá hranaté závorky; používá se normální závorka.

:

nums = (i pro i v rozsahu (10))
tisk (typ (čísla))
tisk (seznam (čísla))

Rozdíl mezi generátorem a normální funkcí:

  1. Generátor poskytuje hodnoty pomocí výtěžek klíčové slovo, kde normální funkce používá vrátit se klíčové slovo
  2. Generátor začíná od místa, kde se zastavil při příštím volání. Normální funkce provede všechny příkazy pokaždé.
  3. Generátor šetří paměť, protože vrací jednu hodnotu po druhé. Můžeme jej tedy použít ke generování nekonečných hodnot.

Závěr:

Generátor je velmi užitečný, když zpracováváme velká / velká data. V danou dobu uchovává pouze jednu jedinou část dat, nikoli celá data. Koncept generátorů je v pythonu považován za pokročilý koncept.

V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...
Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...