Identité vs Égalité
Ce chapitre distingue l'identité de l'égalité. L'identité détermine si deux variables font référence au même objet en mémoire ; l'égalité détermine si deux objets ont la même valeur. Comprendre cette distinction est essentiel pour écrire des conditionnelles, des validations et une logique de traitement des données correctes.
Qu'est-ce que is ?
isvérifie l'identité de l'objet — si deux variables pointent vers le même objet en mémoire ;==vérifie l'égalité des valeurs — si deux objets ont le même contenu.
1234567a = [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
Quand utiliser is et quand l'éviter
- Utiliser
islors de la comparaison avec des singletons tels queNone;
123value = None if value is None: print("No value")
is notest le test d'identité négatif ;
123var = 64 if var is not None: print("var has a value: ", var)
- Éviter d'utiliser
ispour vérifier l'égalité entre des nombres ou des chaînes de caractères. En raison de la mise en cache/interne, l'identité peut sembler "fonctionner" parfois, mais ce n'est pas fiable selon les exécutions et les environnements ; utiliser==à la place ;
123456789x = 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
- Pour les booléens, privilégier les vérifications de véracité.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Compléter les espaces vides avec is ou == :
2. Quelle est la manière correcte de tester l'absence de « valeur » ?
3. Quelle affirmation est recommandée ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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
Identité vs Égalité
Glissez pour afficher le menu
Ce chapitre distingue l'identité de l'égalité. L'identité détermine si deux variables font référence au même objet en mémoire ; l'égalité détermine si deux objets ont la même valeur. Comprendre cette distinction est essentiel pour écrire des conditionnelles, des validations et une logique de traitement des données correctes.
Qu'est-ce que is ?
isvérifie l'identité de l'objet — si deux variables pointent vers le même objet en mémoire ;==vérifie l'égalité des valeurs — si deux objets ont le même contenu.
1234567a = [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
Quand utiliser is et quand l'éviter
- Utiliser
islors de la comparaison avec des singletons tels queNone;
123value = None if value is None: print("No value")
is notest le test d'identité négatif ;
123var = 64 if var is not None: print("var has a value: ", var)
- Éviter d'utiliser
ispour vérifier l'égalité entre des nombres ou des chaînes de caractères. En raison de la mise en cache/interne, l'identité peut sembler "fonctionner" parfois, mais ce n'est pas fiable selon les exécutions et les environnements ; utiliser==à la place ;
123456789x = 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
- Pour les booléens, privilégier les vérifications de véracité.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Compléter les espaces vides avec is ou == :
2. Quelle est la manière correcte de tester l'absence de « valeur » ?
3. Quelle affirmation est recommandée ?
Merci pour vos commentaires !