Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt print(lyrics()) „None' zurück, obwohl die Funktion „lyrics()' „Die allererste Zeile' ausgibt?
Warum die Ausgabe „Keine“? Entschlüsseln der beiden Druckanweisungen
Ein besonderes Problem tritt auf, wenn die folgende Funktion verwendet wird:
def lyrics(): print("The very first line") print(lyrics())
Anstelle der erwarteten „Die allererste Zeile“ gibt die Ausgabe verblüffenderweise „The allererste Zeile“, gefolgt von „Keine“.
Unveiling the Hidden Wahrheiten
Der Schuldige hinter diesem verwirrenden Verhalten liegt im Vorhandensein zweier gedruckter Aussagen. Innerhalb der Lyrics-Funktion ist die erste Anweisung dafür verantwortlich, „die allererste Zeile“ anzuzeigen. Allerdings gibt die Funktion keinen expliziten Wert zurück, was bedeutet, dass Python ihr den Standardwert None zuweist.
Die zweite print-Anweisung außerhalb der Funktion versucht dann, den von Lyrics() zurückgegebenen Wert auszugeben. Da die Funktion effektiv „None“ zurückgibt, gibt sie „None“ an das Terminal aus.
Behebung des Problems: Umfassen der Rückgabeerklärung
Um diese Situation zu beheben und das Gewünschte sicherzustellen Um eine Ausgabe zu erhalten, ändern Sie die Lyrics-Funktion, um explizit einen Wert zurückzugeben. Durch Hinzufügen einer Return-Anweisung können Sie den Wert bestimmen, den die Funktion erzeugt.
Betrachten Sie beispielsweise den folgenden Code:
def lyrics(): print("The very first line") return None print(lyrics())
Jetzt gibt der Code korrekt „Der allererste“ aus Zeile“, da die Return-Anweisung innerhalb der Lyrics-Funktion explizit None zurückgibt.
Die Rückgabe verstehen Standard
Es ist erwähnenswert, dass Python automatisch None zurückgibt, wenn Sie die return-Anweisung innerhalb einer Funktion weglassen. Obwohl es im Code nicht explizit angegeben ist, ist dieses Verhalten entscheidend für das Verständnis, warum Funktionen, die nicht explizit einen Rückgabewert angeben, dennoch None ausgeben.
Zusätzliche Beispiele
Weitere Informationen Betrachten Sie zur Verdeutlichung den folgenden Codeausschnitt:
def test1(): print("In function.") a = test1() print(a) # Prints None print(test1()) # Prints "In function." and then None test1() # Prints "In function." and returns None (not printed)
In diesem Beispiel gibt test1() implizit None zurück, da keine Rückgabe erfolgt Stellungnahme. Daher verhalten sich die nachfolgenden Druckanweisungen wie zuvor erwähnt.
Um einen bestimmten Rückgabewert sicherzustellen, verwenden Sie die Rückgabeanweisung mit dem gewünschten Wert. Zum Beispiel:
def test(): return "ACV" print(test()) # Prints "ACV" a = test() print(a) # Prints "ACV"
Durch die explizite Rückgabe von „ACV“ innerhalb der Funktion test() zeigt die Ausgabe den beabsichtigten Wert korrekt an.
Das obige ist der detaillierte Inhalt vonWarum gibt print(lyrics()) „None' zurück, obwohl die Funktion „lyrics()' „Die allererste Zeile' ausgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!