Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Identidade vs Igualdade | Booleanos e Comparações
Tipos de Dados em Python

bookIdentidade 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?

  • is verifica 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.
1234567
a = [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
copy

Quando usar is e quando evitar

  • Utilizar is em comparações com singletons como None;
123
value = None if value is None: print("No value")
copy
  • is not é a verificação de identidade negada;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Evitar o uso de is para 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.
123456789
x = 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
copy
  • Para booleanos, prefira verificações de veracidade.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Preencha as lacunas com is ou ==:

2. Qual é a forma correta de testar para "nenhum valor"?

3. Qual afirmação é recomendada?

question-icon

Preencha as lacunas com is ou ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Clique ou arraste solte itens e preencha os espaços

question mark

Qual é a forma correta de testar para "nenhum valor"?

Select the correct answer

question mark

Qual afirmação é recomendada?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

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

bookIdentidade 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?

  • is verifica 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.
1234567
a = [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
copy

Quando usar is e quando evitar

  • Utilizar is em comparações com singletons como None;
123
value = None if value is None: print("No value")
copy
  • is not é a verificação de identidade negada;
123
var = 64 if var is not None: print("var has a value: ", var)
copy
  • Evitar o uso de is para 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.
123456789
x = 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
copy
  • Para booleanos, prefira verificações de veracidade.
123
flag = True if flag: # clearer than: if flag is True print("flag is True")
copy

1. Preencha as lacunas com is ou ==:

2. Qual é a forma correta de testar para "nenhum valor"?

3. Qual afirmação é recomendada?

question-icon

Preencha as lacunas com is ou ==:

Use to check if two variables point to the same object.
Use
to check if two values have the same contents.

Clique ou arraste solte itens e preencha os espaços

question mark

Qual é a forma correta de testar para "nenhum valor"?

Select the correct answer

question mark

Qual afirmação é recomendada?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt