Ce face is / is not
== compară valorile, iar is verifică identitatea: dacă este vorba de același obiect. Două liste cu același conținut sunt egale (==), dar sunt obiecte diferite (is dă False).
Folosește is doar pentru None, True, False și pentru a verifica dacă două variabile împart același obiect. Pentru numere și texte folosește ==.
Exemple
Exemplul 1: Egalitate și identitate
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b, a is b)
print(a is c)
c.append(4)
print(a)
Rezultat
True False
True
[1, 2, 3, 4]
Exemplul 2: Verificarea lui None
rezultat = None
print(rezultat is None)
print(rezultat is not None)
Rezultat
True
False
Greșeli frecvente
- Compari numere sau texte cu
is. Uneori pare să meargă (Python refolosește câteva obiecte mici), alteori nu; Python 3.8+ afișează chiar unSyntaxWarningpentrux is 5. Folosește==.
Comenzi înrudite
None: Valoarea specială care înseamnă „nimic”, „lipsă” sau „necunoscut”.id(): Returnează identitatea unui obiect: un număr unic cât timp obiectul există.in / not in: Verifică dacă o valoare se află într-o listă, text, dicționar sau mulțime.copy() pentru liste, dicționare și mulțimi: Creează o copie superficială (shallow) a unei liste, a unui dicționar sau a unei mulțimi.