Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Identiteetti vs Yhtäsuuruus | Boolen-Arvot ja Vertailut
Tietotyypit Pythonissa

bookIdentiteetti vs Yhtäsuuruus

Tässä luvussa erotellaan identiteetti ja yhtäsuuruus. Identiteetti määrittää, viittaavatko kaksi muuttujaa samaan olioon muistissa; yhtäsuuruus määrittää, onko kahdella oliolla sama arvo. Tämän eron ymmärtäminen on olennaista oikeiden ehtolauseiden, validointien ja tietojenkäsittelylogiikan kirjoittamisessa.

Mikä on is?

  • is tarkistaa olion identiteetin — viittaavatko kaksi muuttujaa samaan olioon muistissa;
  • == tarkistaa arvojen yhtäsuuruuden — onko kahdella oliolla sama sisältö.
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

Milloin käyttää is ja milloin välttää sitä

  • Käytä is-operaattoria vertaillessa yksittäisiin olioihin kuten None;
123
value = None if value is None: print("No value")
copy
  • is not on käänteinen identiteettitarkistus;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Vältä is-operaattorin käyttöä numeroiden tai merkkijonojen tasa-arvon tarkistamiseen. Sisäisen välimuistin/internoinnin vuoksi identiteetti saattaa joskus vaikuttaa toimivan, mutta siihen ei voi luottaa eri ajoissa ja ympäristöissä; käytä sen sijaan ==-operaattoria.
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
  • Totuusarvojen kohdalla suosi totuusarvotarkistuksia.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Täydennä aukot is tai ==:

2. Mikä on oikea tapa testata "ei arvoa"?

3. Mikä väite on suositeltava?

question-icon

Täydennä aukot is tai ==:

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

Mikä on oikea tapa testata "ei arvoa"?

Select the correct answer

question mark

Mikä väite on suositeltava?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookIdentiteetti vs Yhtäsuuruus

Pyyhkäise näyttääksesi valikon

Tässä luvussa erotellaan identiteetti ja yhtäsuuruus. Identiteetti määrittää, viittaavatko kaksi muuttujaa samaan olioon muistissa; yhtäsuuruus määrittää, onko kahdella oliolla sama arvo. Tämän eron ymmärtäminen on olennaista oikeiden ehtolauseiden, validointien ja tietojenkäsittelylogiikan kirjoittamisessa.

Mikä on is?

  • is tarkistaa olion identiteetin — viittaavatko kaksi muuttujaa samaan olioon muistissa;
  • == tarkistaa arvojen yhtäsuuruuden — onko kahdella oliolla sama sisältö.
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

Milloin käyttää is ja milloin välttää sitä

  • Käytä is-operaattoria vertaillessa yksittäisiin olioihin kuten None;
123
value = None if value is None: print("No value")
copy
  • is not on käänteinen identiteettitarkistus;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Vältä is-operaattorin käyttöä numeroiden tai merkkijonojen tasa-arvon tarkistamiseen. Sisäisen välimuistin/internoinnin vuoksi identiteetti saattaa joskus vaikuttaa toimivan, mutta siihen ei voi luottaa eri ajoissa ja ympäristöissä; käytä sen sijaan ==-operaattoria.
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
  • Totuusarvojen kohdalla suosi totuusarvotarkistuksia.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Täydennä aukot is tai ==:

2. Mikä on oikea tapa testata "ei arvoa"?

3. Mikä väite on suositeltava?

question-icon

Täydennä aukot is tai ==:

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

Mikä on oikea tapa testata "ei arvoa"?

Select the correct answer

question mark

Mikä väite on suositeltava?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
some-alt