Du liest:
Python Vergleichsoperatoren: Gleich und Ungleich in Python

Python Vergleichsoperatoren: Gleich und Ungleich in Python

von Patrick
13.04.2020
Jetzt Python programmieren lernen

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.

1. 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

1.1. Gleich in Python

Um zu überprüfen ob zwei Objekte den gleichen Wert haben, können wir den == (gleich) Operator nutzen.

1.2. Ungleich in Python

Falls du überprüfen möchtest ob ein Objekt unterschiedlich zu einem anderem ist, kannst du den != (ungleich) Operator nutzen.

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

2. 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

3. 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.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren