Heim > Backend-Entwicklung > Python-Tutorial > Warum gibt print(lyrics()) „None' zurück, obwohl die Funktion „lyrics()' „Die allererste Zeile' ausgibt?

Warum gibt print(lyrics()) „None' zurück, obwohl die Funktion „lyrics()' „Die allererste Zeile' ausgibt?

DDD
Freigeben: 2024-12-08 22:28:13
Original
910 Leute haben es durchsucht

Why does print(lyrics()) return

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())
Nach dem Login kopieren

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())
Nach dem Login kopieren

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)
Nach dem Login kopieren

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"
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage