Ungleich in Python: Alles was du wissen musst!

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.

1. Was bedeutet 'ungleich' in Python?

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.

2. Anwendungsfälle für den ungleich Operator

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.

2.1. So überprüfst du, ob ein String oder eine Liste leer ist

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!

2.2. Ungleich in der if Abfrage

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.

2.3. Ungleich in der while Schleife

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.

2.4. Der != Operator und Strings

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.

3. Sonderfälle: Ungleich NaN, None, Unterschied zu is not

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. 

3.1. So unterscheiden sich != und "is not"

!= 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

3.2. Ungleich und NaN

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.

3.3. NaN versus None

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. 

4. Fazit

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.

 

Teilen: