Wie man prüft, ob eine Zahl in Python Null ist

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 werden wir untersuchen, wie man in Python prüft, ob eine Zahl null ist. Das Lab behandelt grundlegende Konzepte von Null, direkte Vergleiche mit Null und die Behandlung von Fließkomma-Präzision.

Wir beginnen damit, ein Python-Skript zu erstellen, um die grundlegenden Eigenschaften von Null zu demonstrieren, einschließlich Addition, Subtraktion und Multiplikation. Wir werden auch das Verhalten bei Division durch Null untersuchen, was in Python einen Fehler auslöst.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") subgraph Lab Skills python/variables_data_types -.-> lab-559556{{"Wie man prüft, ob eine Zahl in Python Null ist"}} python/numeric_types -.-> lab-559556{{"Wie man prüft, ob eine Zahl in Python Null ist"}} python/conditional_statements -.-> lab-559556{{"Wie man prüft, ob eine Zahl in Python Null ist"}} python/standard_libraries -.-> lab-559556{{"Wie man prüft, ob eine Zahl in Python Null ist"}} python/catching_exceptions -.-> lab-559556{{"Wie man prüft, ob eine Zahl in Python Null ist"}} end

Erkunden des Konzepts von Null

In diesem Schritt werden wir das Konzept von Null in Python untersuchen. Null ist ein grundlegendes numerisches Wert, der das Fehlen einer Menge repräsentiert. Das Verständnis, wie Null in verschiedenen Kontexten verhält, ist entscheidend für das Schreiben von genauen und zuverlässigen Python-Codes.

Zunächst erstellen wir ein einfaches Python-Skript, um die grundlegenden Eigenschaften von Null zu demonstrieren.

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

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

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

    ## Assigning zero to a variable
    x = 0
    
    ## Printing the value of the variable
    print("The value of x is:", x)
    
    ## Adding a number to zero
    y = x + 5
    print("x + 5 =", y)
    
    ## Subtracting a number from zero
    z = x - 3
    print("x - 3 =", z)
    
    ## Multiplying a number by zero
    result = 10 * x
    print("10 * x =", result)

    Dieses Skript demonstriert grundlegende arithmetische Operationen mit Null.

  4. Speichern Sie die Datei.

  5. Führen Sie das Skript mit dem Befehl python im Terminal aus:

    python zero_example.py

    Sie sollten die folgende Ausgabe sehen:

    The value of x is: 0
    x + 5 = 5
    x - 3 = -3
    10 * x = 0

    Wie Sie sehen können, ergibt das Addieren oder Subtrahieren einer Zahl von Null diese Zahl (oder deren Negativwert), und das Multiplizieren einer beliebigen Zahl mit Null ergibt Null.

Jetzt lassen Sie uns die Division durch Null untersuchen. Die Division durch Null ist in der Mathematik undefiniert und löst in Python einen Fehler aus.

  1. Ändern Sie die Datei zero_example.py, um eine Division durch Null einzubeziehen:

    ## Assigning zero to a variable
    x = 0
    
    ## Printing the value of the variable
    print("The value of x is:", x)
    
    ## Adding a number to zero
    y = x + 5
    print("x + 5 =", y)
    
    ## Subtracting a number from zero
    z = x - 3
    print("x - 3 =", z)
    
    ## Multiplying a number by zero
    result = 10 * x
    print("10 * x =", result)
    
    ## Division by zero (will cause an error)
    try:
        division_result = 10 / x
        print("10 / x =", division_result)
    except ZeroDivisionError as e:
        print("Error:", e)

    Wir verwenden einen try-except-Block, um den potenziellen ZeroDivisionError zu behandeln.

  2. Speichern Sie die Datei.

  3. Führen Sie das Skript erneut aus:

    python zero_example.py

    Sie sollten die folgende Ausgabe sehen:

    The value of x is: 0
    x + 5 = 5
    x - 3 = -3
    10 * x = 0
    Error: division by zero

    Das Skript fängt jetzt den ZeroDivisionError ab und gibt eine informative Fehlermeldung aus, anstatt abzustürzen.

Das Verständnis, wie man Null in seinem Code behandelt, ist unerlässlich, um unerwartete Fehler zu vermeiden und sicherzustellen, dass Ihre Programme korrekt funktionieren.

Direkter Vergleich mit Null

In diesem Schritt werden wir lernen, wie man in Python Zahlen direkt mit Null vergleicht. Der direkte Vergleich ist eine einfache Methode, um zu prüfen, ob eine Zahl gleich, größer oder kleiner als Null ist. Dies ist eine häufige Operation in vielen Programmieraufgaben, wie z. B. die Validierung von Eingaben, die Steuerung des Programmflusses und die Implementierung mathematischer Funktionen.

Erstellen wir ein Python-Skript, um den direkten Vergleich mit Null zu demonstrieren.

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

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

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

    ## Assigning a number to a variable
    number = 5
    
    ## Comparing the number with zero
    if number > 0:
        print(number, "is greater than zero")
    elif number < 0:
        print(number, "is less than zero")
    else:
        print(number, "is equal to zero")
    
    ## Changing the value of the number to zero
    number = 0
    
    ## Comparing the number with zero again
    if number > 0:
        print(number, "is greater than zero")
    elif number < 0:
        print(number, "is less than zero")
    else:
        print(number, "is equal to zero")
    
    ## Changing the value of the number to a negative number
    number = -3
    
    ## Comparing the number with zero one more time
    if number > 0:
        print(number, "is greater than zero")
    elif number < 0:
        print(number, "is less than zero")
    else:
        print(number, "is equal to zero")

    Dieses Skript vergleicht verschiedene Zahlen mit Null unter Verwendung von if-, elif- und else-Anweisungen.

  4. Speichern Sie die Datei.

  5. Führen Sie das Skript mit dem Befehl python im Terminal aus:

    python compare_zero.py

    Sie sollten die folgende Ausgabe sehen:

    5 is greater than zero
    0 is equal to zero
    -3 is less than zero

    Das Skript erkennt korrekt, ob die Zahl größer, kleiner oder gleich Null ist.

Der direkte Vergleich mit Null ist einfach und effizient für Ganzzahlen. Bei der Arbeit mit Fließkommazahlen müssen Sie jedoch aufgrund möglicher Genauigkeitsprobleme vorsichtig sein, was wir im nächsten Schritt untersuchen werden.

Umgang mit Fließkomma-Genauigkeit

In diesem Schritt werden wir besprechen, wie man die Fließkomma-Genauigkeit behandelt, wenn man Fließkommazahlen mit Null vergleicht. Aufgrund der Art und Weise, wie Fließkommazahlen in Computern dargestellt werden, sind sie oft kleinen Rundungsfehlern unterworfen. Dies kann zu unerwarteten Ergebnissen führen, wenn man sie direkt mit Null vergleicht.

Beispielsweise könnte eine Berechnung, die theoretisch Null ergeben sollte, tatsächlich eine sehr kleine von Null verschiedene Zahl wie 1e-16 (0,0000000000000001) produzieren. Ein direkter Vergleich dieser Zahl mit Null unter Verwendung von == gibt False zurück, was möglicherweise nicht das gewünschte Ergebnis ist.

Um dies zu behandeln, verwenden wir in der Regel einen Toleranzwert (auch als Epsilon bekannt), um zu prüfen, ob eine Fließkommazahl "nahe genug" an Null liegt.

Erstellen wir ein Python-Skript, um dies zu demonstrieren.

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

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

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

    ## Import the math module
    import math
    
    ## Define a tolerance value (epsilon)
    tolerance = 1e-9  ## A small value like 0.000000001
    
    ## A floating-point number that is very close to zero due to calculation
    number = 1e-10
    
    ## Direct comparison with zero (may fail)
    if number == 0:
        print("Direct comparison: number is zero")
    else:
        print("Direct comparison: number is not zero")
    
    ## Using tolerance to compare with zero
    if math.isclose(number, 0, abs_tol=tolerance):
        print("Comparison with tolerance: number is close to zero")
    else:
        print("Comparison with tolerance: number is not close to zero")
    
    ## Another example with a slightly larger number
    number = 1e-7
    
    ## Direct comparison with zero (will fail)
    if number == 0:
        print("Direct comparison: number is zero")
    else:
        print("Direct comparison: number is not zero")
    
    ## Using tolerance to compare with zero
    if math.isclose(number, 0, abs_tol=tolerance):
        print("Comparison with tolerance: number is close to zero")
    else:
        print("Comparison with tolerance: number is not close to zero")

    Dieses Skript zeigt, wie man die Funktion math.isclose() mit einem Toleranzwert verwendet, um Fließkommazahlen mit Null zu vergleichen.

  4. Speichern Sie die Datei.

  5. Führen Sie das Skript mit dem Befehl python im Terminal aus:

    python float_precision.py

    Sie sollten die folgende Ausgabe sehen:

    Direct comparison: number is not zero
    Comparison with tolerance: number is close to zero
    Direct comparison: number is not zero
    Comparison with tolerance: number is not close to zero

    Wie Sie sehen können, scheitert der direkte Vergleich, weil die Zahl nicht genau Null ist. Wenn man jedoch einen Toleranzwert mit math.isclose() verwendet, erkennt der Vergleich korrekt, dass die Zahl nahe an Null liegt.

Die Funktion math.isclose() prüft, ob zwei Fließkomma-Werte innerhalb einer angegebenen Toleranz nahe beieinander liegen. Das Argument abs_tol gibt die absolute Toleranz an. Wenn die absolute Differenz zwischen den beiden Zahlen kleiner oder gleich der Toleranz ist, gibt die Funktion True zurück.

Durch die Verwendung eines Toleranzwerts können Sie Probleme vermeiden, die durch die Fließkomma-Genauigkeit verursacht werden, und sicherstellen, dass Ihre Vergleiche mit Null genau und zuverlässig sind.

Zusammenfassung

In diesem Lab haben wir zunächst das grundlegende Konzept von Null in Python untersucht und ihr Verhalten in einfachen arithmetischen Operationen verstanden. Wir haben ein Skript namens zero_example.py erstellt, um zu zeigen, dass das Addieren oder Subtrahieren einer Zahl von Null das Ergebnis dieser Zahl (oder ihrer Negation) ist und dass die Multiplikation jeder Zahl mit Null Null ergibt.

Das Skript wurde ausgeführt, um diese Eigenschaften zu beobachten. Dies hat den Grundstein für die weitere Untersuchung von Null in Python gelegt, einschließlich der Auswirkungen der Division durch Null.