Python

Python-Ausbeute vs. Rückkehr

Python-Ausbeute vs. Rückkehr

Python ist die weit verbreitete universelle Programmiersprache der letzten Zeit. Der Ertrag ist ein eingebautes Python-Schlüsselwort, das verwendet wird, um die Generatorfunktionen zu erstellen. Seine Funktion erzeugt eine Reihe von Ergebnissen. Es pausiert die Ausführung des Programms, sendet den Ergebniswert zurück an den Aufrufer und setzt die Ausführung mit der letzten Ausbeute fort. Außerdem sendet die Yield-Funktion die generierte Ergebnisreihe in Form eines Generator-Objekts. Andererseits ist return auch ein in Python eingebautes Schlüsselwort, das die Funktion beendet und den Wert an den Aufrufer zurücksendet.

In diesem Artikel werden die Unterschiede zwischen Rendite und Rendite anhand von Beispielen skizziert.

Unterschiede zwischen Ertrag und Rendite

Zunächst einmal gibt es viele markante Unterschiede zwischen Rendite und Rendite. Lassen Sie uns zuerst besprechen, was das ist.

Rückkehr Ausbeute
Die return-Anweisung gibt nur einen einzigen Wert an den Aufrufer zurück. Die yield-Anweisung kann dem Aufrufer eine Reihe von Ergebnissen in Form eines Generator-Objekts zurückgeben.
Die Rückgabe beendet die Funktion und im Falle einer Schleife verwirft sie die Schleife. Es ist die letzte Anweisung, die in die Funktion eingefügt wird. Die lokalen Variablen der Funktion werden nicht abgeschafft. Es unterbricht die Ausführung und sendet den Wert an den Aufrufer zurück und setzt die Ausführung des Programms ab der letzten Yield-Anweisung fort.
Logischerweise sollte eine Funktion nur eine return-Anweisung haben. Die Funktion kann mehr als eine Yield-Anweisung enthalten.
Die return-Anweisung kann nur einmal ausgeführt werden. Die Yield-Anweisung kann mehrmals ausgeführt werden.
Die return-Anweisung wird innerhalb einer regulären Python-Funktion platziert. Die yield-Anweisung wandelt eine reguläre Funktion in eine Generatorfunktion um.

Beispiel 1: Return vs. Ausbeute

Sehen wir uns nun anhand von Beispielen den Unterschied zwischen return- und yield-Anweisungen an. Im unten angegebenen Beispielprogramm haben wir mehrere return-Anweisungen verwendet. Sie können beobachten, dass die Ausführung des Programms nach der ersten return-Anweisung beendet wird und der Rest des Codes nicht ausgeführt wird.

#ein Programm, um die Funktionsweise der return-Anweisung zu zeigen

#Definieren einer Zahlenvariablen

Anzahl1 =10
#Definieren einer Zahlenvariablen

Anzahl2=20
#Erstellen einer Funktion zum Ausführen arithmetischer Operationen

def mathOP():
#Berechnung des Summenwertes

Zahl1+Zahl2 zurückgeben
#Berechnung der Differenz

Rückgabe num1-num2
#Berechnung des Multiplikationswerts

Zahl1*Zahl2 zurückgeben
#Berechnung des Divisionswerts

Zahl1 / Zahl2 zurückgeben
#die Funktion aufrufen

print(mathOP())

Ausgabe

In der Ausgabe ist zu erkennen, dass die Funktion nur den ersten Wert zurückliefert und das Programm beendet wird.

Um eine ähnliche Aufgabe mit mehreren return-Anweisungen auszuführen, müssen wir vier verschiedene Funktionen für jeden arithmetischen Operationstyp erstellen.

#ein Programm, um die Funktionsweise der return-Anweisung zu zeigen

#Definieren einer Zahlenvariablen

Anzahl1 =10
#Definieren einer Zahlenvariablen

Anzahl2=20
#Erstellen einer Funktion zum Ausführen arithmetischer Operationen

def sumOP():
#Berechnung des Summenwertes

zurück Zahl1+Zahl2
def subtractOP():
#Berechnung der Differenz

Rückgabe num1-num2
def multiplikationOP():
#Berechnung des Multiplikationswerts

Zahl1*Zahl2 zurückgeben
def divisionOP():
#Berechnung des Divisionswerts

Zahl1 / Zahl2 zurückgeben
#Aufruf der Summenfunktion

print("Der Summenwert ist: ",sumOP())
#Aufruf der Subtraktionsfunktion

print("Der Differenzwert ist: ",subtractOP())
#die Multiplikationsfunktion aufrufen

print("Der Multiplikationswert ist: ",multiplicationOP())
#Aufruf der Divisionsfunktion

print("Der Divisionswert ist: ",divisionOP())

Ausgabe

Wir können diese mehreren arithmetischen Operationen innerhalb einer einzigen Generatorfunktion mit mehreren Yield-Anweisungen ausführen.

#ein Programm, um die Funktionsweise von Yield-Anweisungen zu zeigen

#Definieren einer Zahlenvariablen

Anzahl1 =10
#Definieren einer Zahlenvariablen

Anzahl2=20
#Erstellen einer Funktion zum Ausführen arithmetischer Operationen

def mathOP():
#Berechnung des Summenwertes

Ertrag num1+num2
#Berechnung der Differenz

Ertrag num1-num2
#Berechnung des Multiplikationswerts

Ertrag num1*num2
#Berechnung des Divisionswerts

Ertrag num1/num2
#die Funktion aufrufen

print("Werte drucken:")
#mit for-Schleife auf die Werte des Generator-Objekts zugreifen

für i in mathOP():
drucken(i)

Ausgabe

Beispiel2: Return vs. Ausbeute

Sehen wir uns ein weiteres Beispiel für Return- und Yield-Anweisungen an. Im gegebenen Beispiel haben wir eine Liste von Zahlen, die als Argument an die Funktion mod() übergeben wird. Wir führen die Modulus-Operation für jede Anzahl von Listen durch und überprüfen, welche Zahlen diese Zahlen sind, wenn sie durch 10 geteilt werden, geben Sie Null als Restwert zurück.

Lassen Sie uns dieses Beispiel zunächst in unserem Python-Skript mit return-Anweisung implementieren.

#Definieren einer Liste von Zahlen

meineListe=[10,20,25,30,35,40,50]
#definieren einer Funktion zur Durchführung der Modulus-Operation

def mod(meineListe):
für i in myList:
#Moduloperation durchführen

if(i%10==0):
Rückkehr ich
print(mod(meineListe))

Ausgabe

Die return-Anweisung gibt nur die erste Zahl an den Aufrufer zurück und beendet die Ausführung der Funktion.

Lassen Sie uns nun dasselbe Beispiel in unserem Python-Skript mit der yield-Anweisung implementieren.

#Definieren einer Liste von Zahlen

meineListe=[10,20,25,30,35,40,50]
#definieren einer Funktion zur Durchführung der Modulus-Operation

def mod(meineListe):
für i in myList:
#Moduloperation durchführen

if(i%10==0):
#die Ertragsaussage

Ertrag ich
für i in mod(myList):
drucken(i)

Ausgabe

Fazit

Zusammenfassend sind Return und Yield zwei integrierte Python-Schlüsselwörter oder -Anweisungen. Die return-Anweisung wird verwendet, um den Wert einer Funktion an den Aufrufer zurückzugeben und beendet die Ausführung des Programms, während die yield-Anweisung ein Generatorobjekt erzeugt und die mehreren Werte an den Aufrufer zurückgeben kann, ohne die Ausführung des Programms zu beenden. Dieser Artikel listet alle wichtigen Unterschiede zwischen Rendite- und Renditeaussagen mit Beispielen auf.

Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...
HD-Remastered-Spiele für Linux, die noch nie zuvor eine Linux-Version hatten
Viele Spieleentwickler und -herausgeber entwickeln HD-Remaster alter Spiele, um die Lebensdauer des Franchise zu verlängern. Bitte Fans, die Kompatibi...