Python

Python-Generator

Python-Generator
In diesem Thema lernen wir Python Generator.

Definition: Ein Generator ist wie eine normale Funktion, die einen Wertebereich mit Hilfe der Ausbeute Stichwort. Es gibt jeweils ein Objekt zurück. Es verwendet intern einen Iterator. Um auf das nächste Element zuzugreifen Nächster() Funktion verwendet wird, oder wir können sie verwenden zum eine Schleife. Wenn wir versuchen, auf den Wert außerhalb des Bereichs zuzugreifen, wird a StopIteration Error.

Wir werden ein Beispiel sehen, um es besser zu verstehen

Ex: Generatorfunktion für Wertebereich

def range_fun(n):
x = 0
während x < n:
Ertrag x
x += 1
y = range_fun (3)
#Aufruf mit for-Schleife
print('Werte mit der Methode next() generieren')
für i in range_fun(3):
drucken(i)
#Aufrufgenerator mit nächster Methode
print('Werte mit der for-Schleifenmethode generieren')
drucken (nächstes (y))
drucken (nächstes (y))
drucken (nächstes (y))
print(next(y))#Stop Iteration-Ausnahme wird ausgelöst

Ex: Generatorfunktion für Fibonacci-Reihen

def fib_fun(n):
x, y = 0, 1
während x < n:
Ertrag x
x, y = y, x + y
z = fib_fun(6) #generatorobjekt
print('Werte mit der Methode next() generieren')
drucken (nächstes (z))
drucken (nächstes (z))
drucken (nächstes (z))
drucken (nächstes (z))
drucken (nächstes (z))
drucken (nächstes (z))
print('Werte mit der for-Schleifenmethode generieren')
für i in fib_fun(6):
drucken(i)

Ex: Generatorfunktion zum Erzeugen von Wertebereichen bei gegebenen Start- und Endwerten.

def my_range(start, end):
Strom = Start
während aktuell < end:
Ertragsstrom
Strom +=1
print('Werte mit der Methode next() generieren')
nums = my_range(1,5)
print(nächste(Zahlen))
print(nächste(Zahlen))
print(nächste(Zahlen))
print(nächste(Zahlen))
print('Werte mit der for-Schleifenmethode generieren')
für num in my_range(1,5):
Drucken (Anzahl)

Ex: Generator, um jede Zahl (weniger als eine Zahl) mit einer Zahl zu multiplizieren

def gen_mulby_num(max,num):
n = 0
während nein < max:
Ertrag n * num
n += 1
für i in gen_mulby_num(5,3):
drucken(i)

Ex: Generator, um Würfel für Wertebereich zu finden

def gen_mulby_num(max,num):
n = 0
während nein < max:
Ertrag n * num
n += 1
für i in gen_mulby_num(5,3):
drucken(i)

Ex: mehrere Generatoren: Finde das Quadrat der geraden Zahlen, die aus einer Zahl erzeugt werden

Generator 1: Generiere gerade Werte aus einer gegebenen Zahl

Generator 2: Generiere Quadratzahlen aus den Werten von Generator1

def gen_even(m):
n = 0
während nein < m:
wenn n % 2 == 0:
Ertrag n
n += 2
def gen_square (Zahlen):
für num in num:
Ertrag 2 * num
für n in gen_square(gen_even(15)):
drucken(n)


Ex: Mehrere Generatoren: Erstellen Sie eine Fibnacci-Reihe und fügen Sie jeder Zahl einen Wert von 10 hinzu.

Generator1: erzeugt Fibonacci-Reihen aus einer gegebenen Zahl

Generator2: Addiere jede Zahl um 10 von Generator1

def gen_fib(n):
x, y = 0, 1
während x < n:
Ertrag x
x, y = y, x + y
def gen_add_10(Zahlen):
für num in num:
Ertrag 10 + num
für n in gen_add_10(gen_fib(5)):
drucken(n)


Generatorverständnis:

Generatorverständnisse ähneln Listenverständnissen, bei denen die Liste eckige Klammern verwendet; dies verwendet normale Klammern.

Ex:

nums = (i für i im Bereich (10))
print(Typ(Zahlen))
print(Liste(Zahlen))

Unterschied zwischen Generator und normaler Funktion:

  1. Ein Generator liefert Werte mit Ausbeute Schlüsselwort, bei dem die normale Funktion den . verwendet Rückkehr Stichwort
  2. Generator startet dort, wo er beim nächsten Aufruf aufgehört hat. Die normale Funktion führt jedes Mal alle Anweisungen aus.
  3. Generator spart Speicher, da er jeweils einen Wert zurückgibt. Damit können wir unendliche Werte generieren generate.

Fazit:

Generator ist sehr hilfreich, wenn wir mit riesigen/großen Daten umgehen. Zu einem bestimmten Zeitpunkt enthält es nur ein einzelnes Datenelement und nicht ganze Daten. Das Generatorkonzept wird in Python als fortschrittliches Konzept angesehen.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...