Identité vs Égalité
Découvrez la différence entre identité et égalité en Python. L'identité vérifie si deux variables font référence au même objet en mémoire, tandis que l'égalité compare si deux objets possèdent la même valeur. Comprendre cette distinction est essentiel pour rédiger des conditionnelles, des validations et une logique de traitement des données précises.
Qu'est-ce que is ?
isvérifie l'identité d'objet, c'est-à-dire si deux variables pointent vers le même objet en mémoire ;==vérifie l'égalité des valeurs, c'est-à-dire si deux objets ont le même contenu.
12345678# Comparing two shopping carts in an online store cart_today = ["milk", "bread"] cart_yesterday = ["milk", "bread"] shared_cart = cart_today print(cart_today == cart_yesterday) # True → same items print(cart_today is cart_yesterday) # False → two separate cart objects print(cart_today is shared_cart) # True → both refer to the same cart
Quand utiliser is et quand l'éviter
- Utiliser
islors de la comparaison avec des singletons tels queNone;
12345# Checking if the user has entered their phone number user_phone = None if user_phone is None: print("No phone number provided yet")
is notest le test d'identité négatif ;
12345# Checking if the user's age is stored in the system user_age = 64 if user_age is not None: print(f"User age is recorded: {user_age}")
- É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.
123456789101112# Comparing user IDs and usernames in a system user_id_a = 256 user_id_b = 256 print(user_id_a == user_id_b) # True → same user ID value print(user_id_a is user_id_b) # May appear True, but identity check is unreliable for numbers username_a = "hello" username_b = "he" + "llo" print(username_a == username_b) # True → same text print(username_a is username_b) # Avoid using 'is' for string comparison (implementation detail)
- Pour les booléens, privilégier les vérifications de véracité.
12345# Checking if dark mode is enabled in user settings dark_mode_enabled = True if dark_mode_enabled: # clearer than: if dark_mode_enabled is True print("Dark mode is ON")
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
Awesome!
Completion rate improved to 3.45
Identité vs Égalité
Glissez pour afficher le menu
Découvrez la différence entre identité et égalité en Python. L'identité vérifie si deux variables font référence au même objet en mémoire, tandis que l'égalité compare si deux objets possèdent la même valeur. Comprendre cette distinction est essentiel pour rédiger des conditionnelles, des validations et une logique de traitement des données précises.
Qu'est-ce que is ?
isvérifie l'identité d'objet, c'est-à-dire si deux variables pointent vers le même objet en mémoire ;==vérifie l'égalité des valeurs, c'est-à-dire si deux objets ont le même contenu.
12345678# Comparing two shopping carts in an online store cart_today = ["milk", "bread"] cart_yesterday = ["milk", "bread"] shared_cart = cart_today print(cart_today == cart_yesterday) # True → same items print(cart_today is cart_yesterday) # False → two separate cart objects print(cart_today is shared_cart) # True → both refer to the same cart
Quand utiliser is et quand l'éviter
- Utiliser
islors de la comparaison avec des singletons tels queNone;
12345# Checking if the user has entered their phone number user_phone = None if user_phone is None: print("No phone number provided yet")
is notest le test d'identité négatif ;
12345# Checking if the user's age is stored in the system user_age = 64 if user_age is not None: print(f"User age is recorded: {user_age}")
- É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.
123456789101112# Comparing user IDs and usernames in a system user_id_a = 256 user_id_b = 256 print(user_id_a == user_id_b) # True → same user ID value print(user_id_a is user_id_b) # May appear True, but identity check is unreliable for numbers username_a = "hello" username_b = "he" + "llo" print(username_a == username_b) # True → same text print(username_a is username_b) # Avoid using 'is' for string comparison (implementation detail)
- Pour les booléens, privilégier les vérifications de véracité.
12345# Checking if dark mode is enabled in user settings dark_mode_enabled = True if dark_mode_enabled: # clearer than: if dark_mode_enabled is True print("Dark mode is ON")
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 !