Identidade vs Igualdade
Este capítulo diferencia identidade de igualdade. Identidade determina se duas variáveis referenciam o mesmo objeto na memória; igualdade determina se dois objetos possuem o mesmo valor. Compreender essa distinção é fundamental para escrever condicionais, validações e lógicas de processamento de dados corretas.
O que é is?
isverifica a identidade do objeto — se duas variáveis apontam para o mesmo objeto na memória;==verifica a igualdade de valores — se dois objetos possuem o mesmo conteúdo.
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
Quando usar is e quando evitar
- Utilizar
isem comparações com singletons comoNone;
123value = None if value is None: print("No value")
is noté a verificação de identidade negada;
123var = 64 if var is not None: print("var has a value: ", var)
- Evitar o uso de
ispara verificar igualdade entre números ou strings. Devido ao cache/internação interna, a identidade pode parecer "funcionar" às vezes, mas não é confiável em diferentes execuções e ambientes; utilize==neste caso.
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, prefira verificações de veracidade.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Preencha as lacunas com is ou ==:
2. Qual é a forma correta de testar para "nenhum valor"?
3. Qual afirmação é recomendada?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Identidade vs Igualdade
Deslize para mostrar o menu
Este capítulo diferencia identidade de igualdade. Identidade determina se duas variáveis referenciam o mesmo objeto na memória; igualdade determina se dois objetos possuem o mesmo valor. Compreender essa distinção é fundamental para escrever condicionais, validações e lógicas de processamento de dados corretas.
O que é is?
isverifica a identidade do objeto — se duas variáveis apontam para o mesmo objeto na memória;==verifica a igualdade de valores — se dois objetos possuem o mesmo conteúdo.
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
Quando usar is e quando evitar
- Utilizar
isem comparações com singletons comoNone;
123value = None if value is None: print("No value")
is noté a verificação de identidade negada;
123var = 64 if var is not None: print("var has a value: ", var)
- Evitar o uso de
ispara verificar igualdade entre números ou strings. Devido ao cache/internação interna, a identidade pode parecer "funcionar" às vezes, mas não é confiável em diferentes execuções e ambientes; utilize==neste caso.
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, prefira verificações de veracidade.
123flag = True if flag: # clearer than: if flag is True print("flag is True")
1. Preencha as lacunas com is ou ==:
2. Qual é a forma correta de testar para "nenhum valor"?
3. Qual afirmação é recomendada?
Obrigado pelo seu feedback!