Python Vergleichsoperatoren: Gleich und Ungleich in Python

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 13.04.2020
    zuletzt aktualisiert am: 02.02.2023

    Python Vergleichsoperatoren: Gleich und ungleich in Python!

    Oft ist es einfacher, mit kürzeren Zahlen zu rechnen, als mit endlos langen wie π/Pi. Für das Runden von Zahlen oder auch eigenen Klassen stellt Python viele Möglichkeiten bereit, von denen ich dir im Folgenden ein paar vorstellen möchte.

    Python ungleich und gleich: Vergleichsoperatoren in Python

    In Python gibt es – um zwei Objekte miteinander zu vergleichen – zwei Paare von Operatoren.
    Die Operatoren == (gleich) und != (ungleich) lassen dich prüfen, ob zwei Objekte den gleichen Wert haben, während die Operatoren is und is not dich überprüfen lassen, ob die Identität zweier Objekte miteinander übereinstimmt.

    zahl = 7
    
    zahl == 7
    # True
    
    zahl != 6
    # True
    
    zahl != 7
    # False

    Anmerkung:
    In Python 2 Code war auch <> noch zulässig, um zu überprüfen, ob zwei Objekte ungleich sind.

    zahl is 7
    # True
    
    zahl is not 6
    # True
    
    zahl is not 7
    # False

    Der Unterschied zwischen den Operatorenpaaren wird erst deutlich bei der Verwendung komplexerer Objekte wie Listen:

    [3, 2] == [3, 2]
    # True
    
    [3, 2] != [3, 2]
    # False
    
    [3, 2] is [3, 2]
    # False
    
    [3, 2] is not [3, 2]
    # True

    Im vorigen Beispiel fällt auf, dass is und is not ein anderes Resultat ergeben, was daher kommt, dass die beiden Listen nicht das gleiche Objekt sind.
    Wenn du stattdessen zwei Variablen mit der gleichen Liste als Inhalt vergleichst, kehren sich die Resultate des Operatorenpaares um, wie im folgenden Code zu sehen:

    liste = liste1 = [3, 2]
    
    liste == liste1
    # True
    
    liste != liste1
    # False
    
    liste is liste1
    # True
    
    liste is not liste1
    # False

    Eigene Klassen vergleichen

    Mit der magic method __eq__ kannst du selbst das Verhalten deiner Klasse beim Vergleichen mit den Operatoren == und != beeinflussen, was hier anhand eines einfachen Beispiels dargestellt werden soll.

    class Test(object):
        def __init__(self, zahl):
            self.zahl = zahl
        def __eq__(self, other):
            return self.zahl == other
    test_object = Test(42)
    
    test_object == 42
    # True
    
    test_object != 42
    # False
    
    test_object is 42
    # False
    
    test_object is not 42
    # True
    test_object1 = test_object
    
    test_object == test_object1
    # True
    
    test_object != test_object1
    # False
    
    test_object is test_object1
    # True
    
    test_object is not test_object1
    # False

    Fazit

    Python macht mit seinen beiden Operatorenpaaren das Vergleichen von Objekten für uns einfach und mit der magic method __eq__ ist es uns möglich, selbst zu definieren, wie Objekte unserer Klassen mit anderen verglichen werden sollen.

    Hast du noch Fragen oder weitere Beispiele zu dem Thema?
    Schreib es bitte in die Kommentare.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig