Identidad vs Igualdad
Este capítulo distingue la identidad de la igualdad. La identidad determina si dos variables hacen referencia al mismo objeto en memoria; la igualdad determina si dos objetos tienen el mismo valor. Comprender esta distinción es esencial para escribir condicionales, validaciones y lógica de procesamiento de datos correctos.
¿Qué es is?
isverifica la identidad del objeto — si dos variables apuntan al mismo objeto en memoria;==verifica la igualdad de valores — si dos objetos tienen los mismos contenidos.
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
Cuándo usar is y cuándo evitarlo
- Usar
isal comparar con singletons comoNone;
123value = None if value is None: print("No value")
is notes la comprobación de identidad negada;
123var = 64 if var is not None: print("var has a value: ", var)
- Evitar el uso de
ispara comprobar la igualdad entre números o cadenas. Debido al almacenamiento en caché/internamiento interno, la identidad puede parecer que "funciona" a veces, pero no es fiable entre diferentes ejecuciones y entornos; utilizar==en su lugar.
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
- Para booleanos, preferir comprobaciones de veracidad.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Rellena los espacios en blanco con is o ==:
2. ¿Cuál es la forma correcta de comprobar si hay "ningún valor"?
3. ¿Qué afirmación es la recomendada?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
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
Identidad vs Igualdad
Desliza para mostrar el menú
Este capítulo distingue la identidad de la igualdad. La identidad determina si dos variables hacen referencia al mismo objeto en memoria; la igualdad determina si dos objetos tienen el mismo valor. Comprender esta distinción es esencial para escribir condicionales, validaciones y lógica de procesamiento de datos correctos.
¿Qué es is?
isverifica la identidad del objeto — si dos variables apuntan al mismo objeto en memoria;==verifica la igualdad de valores — si dos objetos tienen los mismos contenidos.
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
Cuándo usar is y cuándo evitarlo
- Usar
isal comparar con singletons comoNone;
123value = None if value is None: print("No value")
is notes la comprobación de identidad negada;
123var = 64 if var is not None: print("var has a value: ", var)
- Evitar el uso de
ispara comprobar la igualdad entre números o cadenas. Debido al almacenamiento en caché/internamiento interno, la identidad puede parecer que "funciona" a veces, pero no es fiable entre diferentes ejecuciones y entornos; utilizar==en su lugar.
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
- Para booleanos, preferir comprobaciones de veracidad.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Rellena los espacios en blanco con is o ==:
2. ¿Cuál es la forma correcta de comprobar si hay "ningún valor"?
3. ¿Qué afirmación es la recomendada?
¡Gracias por tus comentarios!