von: Konstantin
aktualisiert: Oct. 18, 2024
Hier lernst du alles über den ungleich Operator in Python was du wissen musst! Außerdem zeige ich dir wie du den ungleich Operator != einsetzt und was die Unterschiede zu "is not" sind. Natürlich gehe ich auch auf Anwendungsbeispiele für den ungleich Operator ein. Es gibt für dich also viele gute Gründe, dir den Beitrag mal genauer durchzulesen!
Der !=
Operator in Python prüft, ob zwei Werte nicht gleich sind. Das klingt simpel, ist aber extrem nützlich in der Praxis. In diesem Artikel zeige ich dir, wie du !=
einsetzt.
Bevor ich dir erkläre was der !=
Operator macht, muss ich dir kurz erklären was "gleich" bedeutet. In Python verwendest du den ==
Operator, um zu prüfen, ob zwei Werte gleich sind. Wenn die Werte identisch sind, gibt der Operator True
zurück, ansonsten False
. Der ==
Operator vergleicht den Inhalt der beiden Objekte, unabhängig davon, ob sie auf dasselbe Objekt im Speicher verweisen. Schau dir das folgende Beispiel dazu an:
a = 10
b = 10
print(a == b)
# Ausgabe: True
if a == b:
print("a und b sind gleich")
# Ausgabe: a und b sind gleich
Erklärung zum Code: Hier wird mit ==
geprüft, ob a
und b
den gleichen Wert haben. Wenn ja, wird die Bedingung als wahr (True
) ausgewertet. Deshalb wird im obigen Beispiel a == b
als True
evaluiert. Da a == b
True
ergibt, wird nach der if
Anweisung die Nachricht "a und b sind gleich" ausgegeben.
Der !=
Operator funktioniert genau umgekehrt: Er prüft, ob zwei Werte nicht gleich sind. Das ist z.B. nützlich, wenn du sicherstellen willst, dass zwei Werte unterschiedlich sind, bevor du eine Aktion ausführst. Sieh dir das Beispiel unten an:
a = 10
b = 5
print(a != b)
# Ausgabe: True
if a != b:
print("a und b sind ungleich")
# Ausgabe: a und b sind ungleich
Erklärung zum Code: Hier wird der Vergleich a != b
zu True
, da die Werte von a und b nicht gleich sind. In der if
-Bedingung gibt Python "a und b sind ungleich" aus, weil 10 eben nicht 5 ist. Das ist ein typischer Einsatz von !=
in einer if
-Bedingung.
Sehr schön! Jetzt hast du ein Verständnis davon was ungleich in Python bedeutet. Darum werde ich dir in diesem Abschnitt noch ein paar Anwendungsbeispiele aufzeigen.
user_input = input("Gib deinen Namen ein: ")
if user_input != "":
print("Danke für die Eingabe!")
else:
print("Bitte gib etwas ein.")
Erklärung zum Code: Hier prüft user_input != ""
, ob der String nicht leer ist. Wenn er leer ist, wird der Benutzer aufgefordert, erneut etwas einzugeben. Der !=
Operator ist also super praktisch, um leere Eingaben oder Objekte zu vermeiden und nur mit tatsächlichen Inhalten zu arbeiten.
Du kannst !=
auch verwenden, um zu prüfen, ob eine Liste nicht leer ist. Das ist hilfreich, wenn du sicherstellen möchtest, dass die Liste Elemente enthält, bevor du damit weiterarbeitest. Schau dir dazu das folgende Beispiel an:
Meine_Liste = ["Apfel", "Banane", "Kirsche"]
if Meine_Liste != []:
print("Die Liste enthält Elemente.")
else:
print("Die Liste ist leer.")
# Ausgabe: Die Liste enthält Elemente.
Meine_leere_Liste = []
if Meine_leere_Liste != []:
print("Die Liste enthält Elemente")
else:
print("Die Liste ist leer.")
# Ausgabe: Die Liste ist leer.
Erklärung zum Code: In diesem Beispiel prüft Meine_Liste
!= []
, ob die Liste nicht leer ist. Da die Liste einige Früchte enthält, wird "Die Liste enthält Elemente." ausgegeben. Im zweiten Beispiel Meine_leere_Liste
enthält die Liste keine Elemente. Daher wird "Die Liste ist leer" ausgegeben.
Mit != []
kannst du also leicht sicherstellen, dass du nur mit Listen arbeitest, die tatsächlich Inhalte haben. Das kann sehr hilfreich sein!
number = int(input("Gib eine Zahl ein: "))
if number != 0:
print("Die Zahl ist ungleich 0.")
else:
print("Die Zahl ist genau 0.")
In diesem Fall prüft die if
-Abfrage number != 0
, ob die eingegebene Zahl ungleich 0 ist. Wenn die Zahl etwas anderes als 0 ist, wird „Die Zahl ist ungleich 0.“ ausgegeben. Der !=
Operator ist perfekt, um Bedingungen zu setzen und Aktionen nur dann auszuführen, wenn Werte unterschiedlich sind.
Hier zeige ich dir wie du den !=
Operator in einer while
-Schleife verwendest, um die Schleife so lange laufen zu lassen, wie zwei Werte ungleich sind. Das ist nützlich, wenn du etwas wiederholen möchtest, bis eine bestimmte Bedingung erfüllt ist. Schau dir das Beispiel an:
counter = 5
while counter != 0:
print(f"Der Zähler steht auf: {counter}")
counter -= 1 # Der Zähler wird um 1 reduziert
print("Die Schleife ist zu Ende.")
# Ausgabe:
# Der Zähler steht auf: 5
# Der Zähler steht auf: 4
# Der Zähler steht auf: 3
# Der Zähler steht auf: 2
# Der Zähler steht auf: 1
# Die Schleife ist zu Ende.
Erklärung zum Code: In diesem Beispiel wird die Schleife so lange ausgeführt, wie der Wert von counter
ungleich 0 ist. Bei jedem Durchlauf wird der Zähler um 1 reduziert. Sobald counter
den Wert 0 erreicht, endet die Schleife.
Der !=
Operator sorgt hier dafür, dass die Schleife nur läuft, solange counter
nicht 0 ist.
Du kannst den !=
Operator natürlich auch verwenden, um zu prüfen, ob zwei Strings nicht gleich sind. Genauer gesagt schaust du, ob die Inhalte der Strings unterschiedlich sind. Wenn die Strings unterschiedlich sind, gibt der Python Interpreter True
zurück; wenn sie gleich sind, gibt der Interpreter False
zurück. Du kannst !=
verwenden, um Benutzereingaben zu validieren, Textvergleiche durchzuführen oder einfach sicherzustellen, dass zwei Strings verschieden sind. Python unterscheidet Groß- und Kleinschreibung.
string1 = "hello"
string2 = "world"
print(string1 != string2)
# Ausgabe: True
string1 = "Codedastic"
string2 = "Codedastic"
print(string1 != string2)
# Ausgabe: False
string1 = "codedastic"
string2 = "Codedastic"
print(string1 != string2)
# Ausgabe: True
Erklärung zum Code: Schau dir den letzten Vergleich an. Hier werden die Strings die Strings "codedastic" und "Codedastic" als ungleich betrachtet. Das ist auch richtig, denn Python unterscheidet zwischen Groß- und Kleinschreibung.
Das Wichtigste zum ungleich Operator weißt du jetzt. Allerdings habe ich in diesem Abschnitt noch ein paar Spezialfälle herausgesucht. Ich will dir den Unterschied zwischen dem ungleich Operator !=
und is not
erklären sowie erläutern was es mit NaN und None auf sich hat, damit wir klären können warum NaN immer ungleich zu sich selbst ist.
!=
und ==
vergleichen die Werte zweier Objekte. is
und is not
hingegen prüfen, ob zwei Variablen auf dasselbe Objekt im Speicher verweisen. Schau dir das im folgenden Beispiel an:
a = [1, 2]
b = [1, 2]
print(a == b)
# Ausgabe: True
print(a != b)
# Ausgabe: False
print(a is b)
# Ausgabe: False
print(a is not b)
# Ausgabe: True
Erklärung zum Code: An diesem Beispiel kannst du den Unterschied zwischen ==
und is
sowie !=
und is not
gut nachvollziehen. Die zwei Listen a und b sind unterschiedliche Objekte, beinhalten allerdings die gleichen Werte. Deshalb evaluiert ==
als True
und is
als False
.
Im Beispiel unten habe ich den beiden Variablen x und y jeweils die Zahl 1 zugeordnet. Hierbei handelt es sich also nicht um ein Objekt sondern um die gleiche Zahl. Daher ergibt eine Prüfung mit is
und is not
sowie ==
und !=
jeweils das identische Ergebnis.
x = 1
y = 1
print(x == y)
# Ausgabe: True
print(x != y)
# Ausgabe: False
print(x is y)
# Ausgabe: True
print(x is not y)
# Ausgabe: False
NaN
steht für Not a Number und repräsentiert einen numerischen Wert, der undefiniert oder nicht darstellbar ist. Du findest NaN
oft in der Datenverarbeitung, insbesondere wenn du mit fehlenden oder ungültigen Zahlenwerten arbeitest. NaN
kann durch Berechnungen entstehen, wie z.B. durch die Division von 0 durch 0 oder das Wurzelziehen aus einer negativen Zahl. Da der Wert nicht darstellbar ist, ist NaN
immer ungleich zu sich selbst. Schau dir das im Beispiel an:
import math
a = float('nan')
print(type(a))
# Ausgabe: <class 'float'>
print(math.isnan(a))
# Ausgabe: True
print(a)
# Ausgabe: nan
print(a != a)
# Ausgabe: True
print(a == a)
# Ausgabe: False
Das Beispiel zeigt, dass NaN != NaN
immer True
ergibt. Das mag merkwürdig erscheinen, ist aber hilfreich, um ungültige oder nicht darstellbare Daten zu erkennen.
Du solltest NaN
und None
nicht verwechseln. NaN
zeigt an, dass numerische Berechnungen fehlschlagen oder unbestimmte Werte erzeugt werden. None
hingegen ist ein spezielles Objekt, das die Abwesenheit eines Wertes oder einen „leeren“ Wert darstellt. Du verwendest None
, um anzuzeigen, dass eine Variable keinen gültigen Wert hat. None
ist in Python ein Singleton, das bedeutet, es gibt nur eine Instanz von None
im gesamten Programm.
Im Beispiel zeige ich dir nochmal die Unterschiede zwischen NaN und None mit Hilfe der Operatoren !=
und ==
:
a = None
b = None
print(a == b)
# Ausgabe: True
print(a != b)
# Ausgabe: False
import math
x = float('nan')
y = float('nan')
print(x == y)
# Ausgabe: False
print(x != y)
# Ausgabe: True
Erklärung zum Code: None
is ein einzelnes spezielles Objekt, dass den Variablen a und b zugewiesen wird. Daher evaluiert a == b
als True
. NaN
jedoch steht für einen unbestimmten oder nicht definierten Wert, daher wird NaN
als ungleich zu sich selbst definiert.
Der !=
Operator prüft, ob zwei Werte unterschiedlich sind. Wenn die Werte nicht gleich sind, gibt er True
zurück. Diesen Operator wirst du häufig in if
-Bedingungen und Schleifen verwenden, um logische Vergleiche durchzuführen.
None
repräsentiert in Python die Abwesenheit eines Wertes, während NaN
(Not a Number) einen ungültigen oder undefinierten numerischen Wert darstellt. None
ist ein Singleton, das immer sich selbst gleicht, während NaN
immer ungleich zu sich selbst ist (NaN != NaN
).
is not
prüft, ob zwei Variablen auf unterschiedliche Objekte im Speicher verweisen (Identität), während !=
den Inhalt der Objekte vergleicht, um zu sehen, ob sie unterschiedlich sind. Verwende is not
für Identitätsvergleiche und !=
für Wertvergleiche.