Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Identität vs. Gleichheit | Booleans und Vergleiche
Datentypen in Python

bookIdentität vs. Gleichheit

Dieses Kapitel unterscheidet Identität von Gleichheit. Identität bestimmt, ob zwei Variablen auf dasselbe Objekt im Speicher verweisen; Gleichheit bestimmt, ob zwei Objekte den gleichen Wert haben. Das Verständnis dieses Unterschieds ist entscheidend für das Schreiben korrekter Bedingungen, Validierungen und Datenverarbeitungslogik.

Was ist is?

  • is prüft die Objektidentität — ob zwei Variablen auf dasselbe Objekt im Speicher zeigen;
  • == prüft die Wertgleichheit — ob zwei Objekte den gleichen Inhalt haben.
1234567
a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
copy

Wann is verwendet werden sollte und wann nicht

  • Verwendung von is beim Vergleich mit Singletons wie None;
123
value = None if value is None: print("No value")
copy
  • is not ist die verneinte Identitätsprüfung;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Vermeidung der Verwendung von is zum Vergleich auf Gleichheit zwischen Zahlen oder Zeichenketten. Aufgrund von internem Caching/Interning kann Identität manchmal scheinbar "funktionieren", ist jedoch nicht zuverlässig über verschiedene Ausführungen und Umgebungen hinweg; stattdessen == verwenden.
123456789
x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
copy
  • Bei Booleans bevorzugt Wahrheitswertprüfungen.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Fülle die Lücken mit is oder ==:

2. Was ist die korrekte Methode, um auf „keinen Wert“ zu prüfen?

3. Welche Aussage ist empfohlen?

question-icon

Fülle die Lücken mit is oder ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Click or drag`n`drop items and fill in the blanks

question mark

Was ist die korrekte Methode, um auf „keinen Wert“ zu prüfen?

Select the correct answer

question mark

Welche Aussage ist empfohlen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain more about why using `is` with numbers or strings is unreliable?

When should I use `==` instead of `is` in my code?

Can you give more examples of identity vs equality in Python?

Awesome!

Completion rate improved to 5

bookIdentität vs. Gleichheit

Swipe um das Menü anzuzeigen

Dieses Kapitel unterscheidet Identität von Gleichheit. Identität bestimmt, ob zwei Variablen auf dasselbe Objekt im Speicher verweisen; Gleichheit bestimmt, ob zwei Objekte den gleichen Wert haben. Das Verständnis dieses Unterschieds ist entscheidend für das Schreiben korrekter Bedingungen, Validierungen und Datenverarbeitungslogik.

Was ist is?

  • is prüft die Objektidentität — ob zwei Variablen auf dasselbe Objekt im Speicher zeigen;
  • == prüft die Wertgleichheit — ob zwei Objekte den gleichen Inhalt haben.
1234567
a = [1, 2] b = [1, 2] c = a print(a == b) # True - same contents print(a is b) # False - different list objects print(a is c) # True - c refers to the very same list as a
copy

Wann is verwendet werden sollte und wann nicht

  • Verwendung von is beim Vergleich mit Singletons wie None;
123
value = None if value is None: print("No value")
copy
  • is not ist die verneinte Identitätsprüfung;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Vermeidung der Verwendung von is zum Vergleich auf Gleichheit zwischen Zahlen oder Zeichenketten. Aufgrund von internem Caching/Interning kann Identität manchmal scheinbar "funktionieren", ist jedoch nicht zuverlässig über verschiedene Ausführungen und Umgebungen hinweg; stattdessen == verwenden.
123456789
x = 256 y = 256 print(x == y) # True (same value) print(x is y) # May appear True; do not rely on identity here s1 = "hello" s2 = "he" + "llo" print(s1 == s2) # True print(s1 is s2) # Implementation detail; avoid using is here
copy
  • Bei Booleans bevorzugt Wahrheitswertprüfungen.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Fülle die Lücken mit is oder ==:

2. Was ist die korrekte Methode, um auf „keinen Wert“ zu prüfen?

3. Welche Aussage ist empfohlen?

question-icon

Fülle die Lücken mit is oder ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Click or drag`n`drop items and fill in the blanks

question mark

Was ist die korrekte Methode, um auf „keinen Wert“ zu prüfen?

Select the correct answer

question mark

Welche Aussage ist empfohlen?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
some-alt