Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt meine Python-Funktion „None' anstelle der erwarteten Ausgabe zurück?

Warum gibt meine Python-Funktion „None' anstelle der erwarteten Ausgabe zurück?

DDD
DDDOriginal
2024-11-28 11:00:10369Durchsuche

Why Does My Python Function Return `None` Instead of the Expected Output?

Das Rückgabeverhalten von Python-Funktionen verstehen

Warum gibt diese einfache Python-Funktion am Ende None zurück?

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1

Erklärung:

In Python gibt jede Funktion einen Wert zurück. Wenn eine Return-Anweisung nicht explizit bereitgestellt wird, ist der Standardrückgabewert None. In diesem Fall gibt die Funktion printmult() keinen Rückgabewert an und gibt daher standardmäßig „None“ zurück.

Erwartung:

Man kann das fälschlicherweise erwarten printmult(30) wird sich anders verhalten, als es tatsächlich der Fall ist. Hier eine Klarstellung:

  • printmult(30) wertet die Funktion printmult() mit dem Argument 30 aus.
  • Die Funktion druckt die Multiplikationstabelle von 30 von 1 bis 10, was zu dem Ergebnis führt Ausgang „30 60 90 120 150 180 210 240 270 300 " (ohne Anführungszeichen).
  • Die Funktion gibt jedoch keinen bestimmten Wert zurück.
  • print() nimmt dann den Rückgabewert von printmult(30) (der None ist) und druckt es aus, was zu keiner sichtbaren Ausgabe führt, da None keine Zeichenfolge enthält Darstellung.

Empfehlung:

Um dieses Verhalten zu vermeiden, geben Sie am Ende der Funktion explizit einen gewünschten Wert zurück. Sie könnten beispielsweise das letzte Element der Multiplikationstabelle zurückgeben:

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1
    return n * 10

print(printmult(30))  # Now returns 300

Das obige ist der detaillierte Inhalt vonWarum gibt meine Python-Funktion „None' anstelle der erwarteten Ausgabe zurück?. 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