So verwenden Sie die Python -Generatorfunktionen Howto

So verwenden Sie die Python -Generatorfunktionen Howto
Die Generatorfunktion funktioniert ähnlich wie die normale Funktion. Aber wenn es Zeit ist, einen Wert zurückzugeben, verwenden wir die Ertragsfunktion anstatt in Python zurückzukehren. Die Generatorfunktion funktioniert mit Hilfe von Generatorobjekten. In diesem Artikel werden wir den signifikanten Unterschied zwischen dem Normal- und den Generatorfunktionen lernen.

Syntax

Ausdrucksergebnis

Die Python -Ertrag gibt das Generatorobjekt zurück. Dies sind die speziellen Objekte, die dazu beitragen, den Wert zu erhalten. Aus diesem Grund wird es iteriert.

Werkzeuge des Pythongenerators

Generatorfunktion:

Diese Funktionen sind als normale Funktion „def“ definiert, verwenden jedoch das Keyword für die Ertragsrendite anstelle der Rückgabe. Somit wird das Ergebnis nacheinander erhalten.

Generatorausdrücke:

Diese Ausdrücke funktionieren ähnlich wie die Liste der Liste. Sie unterscheiden sich jedoch in einem Aspekt. Wenn sie ein Objekt zurückgeben, wird das Ergebnis nur angezeigt, wenn sie verlangt werden, anstatt die Ergebnisse der Ergebnisse zu erstellen.

Beispiel

Eine einfache Illustration, um das Konzept der Generatoren aufzuklären, wird unten erklärt. Zunächst werden wir den Generator definieren, da wir früher eine einfache Funktion definiert haben. Danach werden wir die Zeichenfolge ausdrucken und das Keyword zum Ausbeute verwenden, um den Wert zurückzugeben.

Def Gen ()
Ausbeute 10

Wenn Gen () der Name eines Generators ist, gibt es jedes Mal, wenn die Ausbeute aufgerufen wird, den zu angezeigten Wert zurück.

Um die Ausgabe unter Linux zu erhalten, gehen Sie zum Ubuntu -Terminal und schreiben Sie den folgenden Befehl:

$ python3 '/home/aqsa/dokumente/resulttempe.py '

Wenn Python3 ein Schlüsselwort ist, haben wir den Pfad einer Datei mit der Erweiterung von “verwendet.Py “, das zeigt, dass die Datei in Python geschrieben ist.

Die Ausgabe ist wie folgt:

Sie können sehen, dass die Ertragsfunktion jede Wertlinie nach Leitung zurückgegeben hat.

Unterschied zwischen dem Generator und den normalen Funktionen

Hier haben wir ein Beispiel gegeben, um den Unterschied zwischen einer regulären Funktion und dem Generator mit einer Ertragsfunktion zu erklären. Zunächst wird die normale Funktion definiert:

Def function ()

In dieser Funktion wird nur eine Zeichenfolge als Ausgabe gedruckt. Zweitens haben wir einen Generator definiert.

Def Generator ()

Dadurch wird die Zeichenfolge als Ausgabe geliefert. Nachdem wir sowohl die Funktion als auch die Generator definiert haben, erlauben wir die Funktionsaufrufe und lassen sie drucken.

Print (Generator ())

Jetzt werden wir die Ausgabe anzeigen, indem wir dieselbe oben beschriebene Praxis ausführen.

Aus der Ausgabe können Sie erkennen, dass das Ergebnis der normalen Funktion erhalten wird, der Generator jedoch einen Fehler gezeigt hat. Es gibt also eine andere Möglichkeit, die Ausgabe mit dem Objekt des Generators zu erhalten. Wir haben dasselbe Beispiel wie oben beschrieben genommen, um die Funktionalität zu erklären. Der gesamte Code ist derselbe, aber die Druckmethode des Generators wird durch den folgenden Code ersetzt:

Print (next (generator ()))

Dieser Befehl hilft beim Abrufen der im Generator geschriebenen Zeichenfolge.

Aus der Ausgabe können Sie nun das anzeigen, anstatt die Fehlermeldung anzuzeigen. Die gewünschte Ausgabe wird in Form einer Zeichenfolge erhalten.

Holen Sie/lesen Sie die Werte aus der Generatorfunktion

Es gibt verschiedene Funktionen, die dazu beitragen, den Ausgang vom Generator zu erhalten. Wir werden zwei von ihnen nacheinander besprechen.

Aufführen ()

Eine Liste ist ein Objekt, das ihre Werte in den Klammern enthält. Dieses Objekt ist iterbar und zeigt die Werte mit Iterationen an. Im Generator zeigen die Listen alle Werte an, die der Generator besitzt. Neben der Liste werden für Loop () und Next () Funktionen auch verwendet, um die Ausgabe zu präsentieren.

Betrachten Sie ein Beispiel, in dem wir einen Generator mit dem Namen „Funktion“ definiert haben, in dem wir eine für die Zahlen für die IT -Zahlen verwendet haben. In dieser Funktion wird eine mathematische Operation durchgeführt. Die Generatorfunktion empfängt einen Wert, der als Parameter übergeben wird, wenn diese Funktion aufgerufen wird.

Für x im Bereich (n):
If (x%2 == 0):
Ausbeute x

Dies ist der Kerncode der Generatorfunktion:

Nachdem nach dem Finden des Moduls der resultierende Wert unter Verwendung der Ertrag zurückgegeben wird. Als nächstes erfolgt das weitere Druckverfahren durch die Listenfunktion, die wie folgt lautet.

Druck (Liste (num))

Diese Funktion liefert die Ausgabe in Form einer Liste. Beispielsweise wird der Ausgang unten angezeigt:

Nächste()

Die folgende Funktion zeigt den nächsten Wert in jeder Liste, Array oder Objekt an. Wenn wir die nächste Funktion in einem leeren Array verwenden, wird eine Fehlermeldung angezeigt. Um den Feinwert zu erhalten, sollte das Array oder die Liste nicht leer sein. In diesem Beispiel wird der gleiche mathematische Betrieb angewendet. Die Druckmethode ist jedoch anders. Da 20 die als Parameter übergebene Zahl ist, werden die Zahlen erhalten, bis 20 im Ausgang erreicht werden. Wir haben sieben Runden beendet.

Print (next (num))

Jetzt werden wir die Ausgabe sehen. Beachten Sie, dass alle gleichmäßigen Zahlen erhalten werden:

Fibonacci -Zahlenreihe und die Generatoren

Die Fibonacci -Serie ist die Abfolge von Zahlen, die durch Hinzufügen der letzten beiden Zahlen zuvor erworben wurden. Wir haben das folgende Beispiel verwendet, um die Funktionalität von Generatoren zu verstehen. In dieser Funktion haben wir zwei Variablen genommen, die zwei numerische Werte speichern. Wir haben auch eine Zählvariable genommen. Diese Funktion funktioniert so, dass sie prüft, ob der Wert der Anzahl kleiner als die aktuelle Zahl ist. Als nächstes wird es die beiden vorherigen Zahlen hinzufügen und sie im nächsten speichern. Der Prozess bleibt bis die Zahl 7 erreicht. Schließlich wird das Ergebnis durch Verwendung der für Loop () erhalten.

Die Ausgabe des oben genannten Codes lautet wie folgt:

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

Funktionsaufruf mithilfe der Ertrag

Dies ist das Beispiel für das Aufrufen der Funktion durch Verwendung der Ausbeute. Im Vergleich dazu haben wir die quadratische Funktion im Generator verwendet.

Def GetsQuare (n):
Ertragtest (i)

Durch die Funktion der Renditen haben wir den Funktionsaufruf verwendet, um die Antwort zu erhalten:

Die erforderliche Ausgabe ist unten angegeben:

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

Abschluss

In diesem Artikel haben wir die Beispiele eines Generators erläutert, wie wir die Ausgabe und den Unterschied zwischen dem Generator und der normalen Funktion erhalten können.