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
DDDOriginal
2024-12-08 22:28:13865Durchsuche

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())

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!

Stellungnahme:
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