Wie man prüft, ob eine Funktion in Python None zurückgibt

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob eine Funktion in Python None zurückgibt. Das Lab führt Sie durch das Verständnis von Funktionsrückgabewerten, indem Sie ein einfaches Python-Skript mit einer Funktion erstellen, die die Summe zweier Zahlen zurückgibt. Anschließend führen Sie das Skript aus und beobachten die Ausgabe.

Das Lab geht dann weiter, indem es die Funktion so ändert, dass sie verschiedene Datentypen zurückgibt, und konzentriert sich schließlich auf Szenarien, in denen eine Funktion möglicherweise keinen expliziten Rückgabewert hat, was zu einem None-Rückgabewert führt. Sie lernen, wie Sie den Rückgabewert einer Funktion erfassen und dann prüfen, ob dieser Wert None ist, indem Sie den is-Operator verwenden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") subgraph Lab Skills python/conditional_statements -.-> lab-559522{{"Wie man prüft, ob eine Funktion in Python None zurückgibt"}} python/function_definition -.-> lab-559522{{"Wie man prüft, ob eine Funktion in Python None zurückgibt"}} python/arguments_return -.-> lab-559522{{"Wie man prüft, ob eine Funktion in Python None zurückgibt"}} end

Lernen Sie über Funktionsrückgabewerte

In diesem Schritt lernen Sie über Funktionsrückgabewerte in Python. Funktionen sind wiederverwendbare Codeblöcke, die bestimmte Aufgaben ausführen. Oft möchten Sie, dass eine Funktion Ihnen nach Abschluss ihrer Arbeit ein Ergebnis zurückgibt. Dieses Ergebnis wird Rückgabewert genannt.

Beginnen wir damit, ein einfaches Python-Skript zu erstellen, das eine Funktion mit einem Rückgabewert definiert.

  1. Öffnen Sie den VS Code-Editor in der LabEx-Umgebung.

  2. Erstellen Sie eine neue Datei mit dem Namen calculate.py im Verzeichnis ~/project.

    ~/project/calculate.py
  3. Fügen Sie den folgenden Code in die Datei calculate.py ein:

    def add(x, y):
        """This function adds two numbers and returns the result."""
        sum = x + y
        return sum
    
    ## Call the function and print the returned value
    result = add(5, 3)
    print(result)

    In diesem Code:

    • Wir definieren eine Funktion namens add, die zwei Argumente, x und y, akzeptiert.
    • Innerhalb der Funktion berechnen wir die Summe von x und y und speichern sie in einer Variablen namens sum.
    • Die Anweisung return sum gibt an, dass die Funktion den Wert von sum zurückgeben soll, wenn sie aufgerufen wird.
    • Außerhalb der Funktion rufen wir die Funktion add mit den Argumenten 5 und 3 auf und speichern den zurückgegebenen Wert in einer Variablen namens result.
    • Schließlich verwenden wir die Funktion print(), um den Wert von result anzuzeigen.
  4. Speichern Sie die Datei calculate.py.

  5. Öffnen Sie ein Terminal in der WebIDE.

  6. Führen Sie das Skript mit dem folgenden Befehl aus:

    python calculate.py

    Sie sollten die folgende Ausgabe sehen:

    8

    Diese Ausgabe zeigt, dass die Funktion add die Summe von 5 und 3 korrekt berechnet und den Wert 8 zurückgegeben hat, der dann in der Konsole ausgegeben wurde.

Lassen Sie uns nun die Funktion so ändern, dass sie einen anderen Werttyp, wie z. B. einen String, zurückgibt.

  1. Öffnen Sie die Datei calculate.py in VS Code.

  2. Ändern Sie den Code wie folgt:

    def greet(name):
        """This function returns a greeting message."""
        message = "Hello, " + name + "!"
        return message
    
    ## Call the function and print the returned value
    greeting = greet("LabEx User")
    print(greeting)

    In diesem Code:

    • Wir definieren eine Funktion namens greet, die ein Argument, name, akzeptiert.
    • Innerhalb der Funktion erstellen wir eine Begrüßungsnachricht, indem wir die Zeichenkette "Hello, ", den Wert des Arguments name und die Zeichenkette "!" verketten.
    • Die Anweisung return message gibt an, dass die Funktion die Begrüßungsnachricht zurückgeben soll.
    • Außerhalb der Funktion rufen wir die Funktion greet mit dem Argument "LabEx User" auf und speichern den zurückgegebenen Wert in einer Variablen namens greeting.
    • Schließlich verwenden wir die Funktion print(), um den Wert von greeting anzuzeigen.
  3. Speichern Sie die Datei calculate.py.

  4. Führen Sie das Skript erneut mit dem folgenden Befehl aus:

    python calculate.py

    Sie sollten die folgende Ausgabe sehen:

    Hello, LabEx User!

    Diese Ausgabe zeigt, dass die Funktion greet eine Begrüßungsnachricht korrekt erstellt und zurückgegeben hat, die dann in der Konsole ausgegeben wurde.

Den Rückgabewert erfassen

Im vorherigen Schritt haben Sie gelernt, wie Sie Funktionen definieren, die Werte zurückgeben. Jetzt lernen Sie, wie Sie diese Rückgabewerte in Ihren Programmen erfassen und nutzen können. Das Erfassen des Rückgabewerts bedeutet, den von einer Funktion zurückgegebenen Wert in einer Variablen zu speichern, damit Sie ihn später verwenden können.

Setzen wir mit der Datei calculate.py fort, die Sie im vorherigen Schritt erstellt haben. Wir werden das Skript ändern, um weitere Operationen auszuführen und die Rückgabewerte zu erfassen.

  1. Öffnen Sie die Datei calculate.py in VS Code.

  2. Ändern Sie den Code wie folgt:

    def add(x, y):
        """This function adds two numbers and returns the result."""
        sum = x + y
        return sum
    
    def subtract(x, y):
        """This function subtracts two numbers and returns the result."""
        difference = x - y
        return difference
    
    ## Call the functions and capture the return values
    num1 = 10
    num2 = 5
    
    sum_result = add(num1, num2)
    print("The sum of", num1, "and", num2, "is:", sum_result)
    
    difference_result = subtract(num1, num2)
    print("The difference between", num1, "and", num2, "is:", difference_result)

    In diesem Code:

    • Wir definieren zwei Funktionen: add und subtract.
    • Wir rufen die Funktion add mit den Argumenten num1 und num2 auf und speichern den zurückgegebenen Wert in einer Variablen namens sum_result.
    • Wir rufen die Funktion subtract mit den Argumenten num1 und num2 auf und speichern den zurückgegebenen Wert in einer Variablen namens difference_result.
    • Wir verwenden die Funktion print(), um die Werte von sum_result und difference_result zusammen mit beschreibendem Text anzuzeigen.
  3. Speichern Sie die Datei calculate.py.

  4. Führen Sie das Skript mit dem folgenden Befehl aus:

    python calculate.py

    Sie sollten die folgende Ausgabe sehen:

    The sum of 10 and 5 is: 15
    The difference between 10 and 5 is: 5

    Diese Ausgabe zeigt, dass wir die Rückgabewerte der Funktionen add und subtract erfolgreich erfasst und in unserem Programm verwendet haben.

Jetzt erstellen wir ein komplexeres Beispiel, in dem wir den Rückgabewert einer Funktion als Argument für eine andere Funktion verwenden.

  1. Öffnen Sie die Datei calculate.py in VS Code.

  2. Ändern Sie den Code wie folgt:

    def add(x, y):
        """This function adds two numbers and returns the result."""
        sum = x + y
        return sum
    
    def multiply(x, y):
        """This function multiplies two numbers and returns the result."""
        product = x * y
        return product
    
    ## Call the functions and capture the return values
    num1 = 5
    num2 = 3
    
    sum_result = add(num1, num2)
    product_result = multiply(sum_result, 2)  ## Use the return value of add as an argument to multiply
    
    print("The sum of", num1, "and", num2, "is:", sum_result)
    print("The product of the sum and 2 is:", product_result)

    In diesem Code:

    • Wir definieren zwei Funktionen: add und multiply.
    • Wir rufen die Funktion add mit den Argumenten num1 und num2 auf und speichern den zurückgegebenen Wert in einer Variablen namens sum_result.
    • Wir rufen die Funktion multiply mit den Argumenten sum_result und 2 auf. Dies zeigt, wie der Rückgabewert von add als Eingabe für multiply verwendet werden kann. Wir speichern den zurückgegebenen Wert in einer Variablen namens product_result.
    • Wir verwenden die Funktion print(), um die Werte von sum_result und product_result zusammen mit beschreibendem Text anzuzeigen.
  3. Speichern Sie die Datei calculate.py.

  4. Führen Sie das Skript mit dem folgenden Befehl aus:

    python calculate.py

    Sie sollten die folgende Ausgabe sehen:

    The sum of 5 and 3 is: 8
    The product of the sum and 2 is: 16

    Diese Ausgabe zeigt, dass wir den Rückgabewert einer Funktion erfolgreich als Argument für eine andere Funktion verwendet haben, was die Stärke und Flexibilität von Funktionsrückgabewerten demonstriert.

Prüfen, ob der Rückgabewert None ist

In einigen Fällen gibt eine Funktion möglicherweise nicht immer einen sinnvollen Wert zurück. In solchen Situationen kann sie None zurückgeben. None ist ein spezieller Wert in Python, der die Abwesenheit eines Werts darstellt. Es ist wichtig, zu prüfen, ob eine Funktion None zurückgibt, bevor Sie ihren Rückgabewert verwenden, um Fehler zu vermeiden.

Ändern wir die Datei calculate.py, um eine Funktion einzubeziehen, die möglicherweise None zurückgibt.

  1. Öffnen Sie die Datei calculate.py in VS Code.

  2. Ändern Sie den Code wie folgt:

    def divide(x, y):
        """This function divides x by y and returns the result.
        If y is 0, it returns None to avoid division by zero errors.
        """
        if y == 0:
            return None
        else:
            return x / y
    
    ## Call the function and check if the return value is None
    numerator = 10
    denominator = 0
    
    result = divide(numerator, denominator)
    
    if result is None:
        print("Cannot divide by zero!")
    else:
        print("The result of", numerator, "/", denominator, "is:", result)
    
    denominator = 2
    result = divide(numerator, denominator)
    
    if result is None:
        print("Cannot divide by zero!")
    else:
        print("The result of", numerator, "/", denominator, "is:", result)

    In diesem Code:

    • Wir definieren eine Funktion namens divide, die zwei Argumente, x und y, akzeptiert.
    • Innerhalb der Funktion prüfen wir, ob y gleich 0 ist. Wenn dies der Fall ist, geben wir None zurück, um einen Fehler bei der Division durch Null zu vermeiden.
    • Wenn y nicht 0 ist, berechnen wir das Ergebnis von x / y und geben es zurück.
    • Außerhalb der Funktion rufen wir die Funktion divide mit einem Nenner von 0 auf.
    • Wir prüfen, ob der zurückgegebene Wert None ist, indem wir den is-Operator verwenden.
    • Wenn der zurückgegebene Wert None ist, geben wir eine Fehlermeldung aus.
    • Andernfalls geben wir das Ergebnis der Division aus.
    • Wir rufen dann die Funktion divide erneut mit einem gültigen Nenner auf und geben das Ergebnis aus.
  3. Speichern Sie die Datei calculate.py.

  4. Führen Sie das Skript mit dem folgenden Befehl aus:

    python calculate.py

    Sie sollten die folgende Ausgabe sehen:

    Cannot divide by zero!
    The result of 10 / 2 is: 5.0

    Diese Ausgabe zeigt, dass das Programm den Fall, in dem der Nenner 0 war, korrekt behandelt und eine entsprechende Fehlermeldung ausgegeben hat. Sie zeigt auch, dass das Programm das Ergebnis korrekt berechnet und ausgegeben hat, wenn der Nenner nicht 0 war.

Es ist wichtig, den is-Operator zu verwenden, um zu prüfen, ob ein Wert None ist, da None in Python ein Singleton-Objekt ist. Dies bedeutet, dass es in einem gesamten Programm nur eine Instanz von None gibt. Die Verwendung des ==-Operators funktioniert möglicherweise nicht immer korrekt, da er die Werte der Objekte vergleicht, nicht die Objekte selbst.

Zusammenfassung

In diesem Lab haben Sie sich mit Funktionsrückgabewerten in Python vertraut gemacht. Sie haben eine Funktion namens add erstellt, die zwei Argumente entgegennimmt, ihre Summe berechnet und das Ergebnis zurückgibt. Anschließend haben Sie die Funktion aufgerufen, den zurückgegebenen Wert in einer Variablen gespeichert und ihn in der Konsole ausgegeben.

Das Lab hat gezeigt, wie Funktionen Werte unterschiedlicher Typen, wie z. B. Ganzzahlen (integers), zurückgeben können. Dies ermöglicht es Funktionen, Berechnungen oder Operationen durchzuführen und die Ergebnisse an den aufrufenden Code zurückzugeben, um sie weiter zu verwenden.