Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Identitet vs Lighed | Booleske Værdier og Sammenligninger
Datatyper i Python

bookIdentitet vs Lighed

Dette kapitel adskiller identitet fra lighed. Identitet afgør, om to variabler refererer til samme objekt i hukommelsen; lighed afgør, om to objekter har samme værdi. Forståelsen af denne forskel er afgørende for at skrive korrekte betingelser, valideringer og databehandlingslogik.

Hvad er is?

  • is kontrollerer objektidentitet — om to variabler peger på samme objekt i hukommelsen;
  • == kontrollerer lighed af værdier — om to objekter har samme indhold.
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

Hvornår skal is bruges, og hvornår skal det undgås

  • Brug is ved sammenligning med singletons såsom None;
123
value = None if value is None: print("No value")
copy
  • is not er den negaterede identitetstjek;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Undgå at bruge is til at kontrollere lighed mellem tal eller strenge. På grund af intern caching/interning kan identitet tilsyneladende "virke" nogle gange, men det er ikke pålideligt på tværs af forskellige kørseler og miljøer; brug == i stedet.
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
  • For boolske værdier, foretræk sandhedsværdikontrol.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Udfyld hullerne med is eller ==:

2. Hvad er den korrekte måde at teste for "ingen værdi"?

3. Hvilken erklæring er anbefalet?

question-icon

Udfyld hullerne med is eller ==:

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

Hvad er den korrekte måde at teste for "ingen værdi"?

Select the correct answer

question mark

Hvilken erklæring er anbefalet?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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

bookIdentitet vs Lighed

Stryg for at vise menuen

Dette kapitel adskiller identitet fra lighed. Identitet afgør, om to variabler refererer til samme objekt i hukommelsen; lighed afgør, om to objekter har samme værdi. Forståelsen af denne forskel er afgørende for at skrive korrekte betingelser, valideringer og databehandlingslogik.

Hvad er is?

  • is kontrollerer objektidentitet — om to variabler peger på samme objekt i hukommelsen;
  • == kontrollerer lighed af værdier — om to objekter har samme indhold.
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

Hvornår skal is bruges, og hvornår skal det undgås

  • Brug is ved sammenligning med singletons såsom None;
123
value = None if value is None: print("No value")
copy
  • is not er den negaterede identitetstjek;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Undgå at bruge is til at kontrollere lighed mellem tal eller strenge. På grund af intern caching/interning kan identitet tilsyneladende "virke" nogle gange, men det er ikke pålideligt på tværs af forskellige kørseler og miljøer; brug == i stedet.
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
  • For boolske værdier, foretræk sandhedsværdikontrol.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Udfyld hullerne med is eller ==:

2. Hvad er den korrekte måde at teste for "ingen værdi"?

3. Hvilken erklæring er anbefalet?

question-icon

Udfyld hullerne med is eller ==:

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

Hvad er den korrekte måde at teste for "ingen værdi"?

Select the correct answer

question mark

Hvilken erklæring er anbefalet?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3
some-alt