is versus ==

is pergunta se dois nomes são o mesmo objeto. == pergunta se os valores coincidem. Usa is None para um valor em falta.

Sintaxe

a is b
a == b
value is None
  • Duas listas com os mesmos itens são iguais, mas não são o mesmo objeto.

Exemplo

a = []
b = a
c = []
print(a is b)
print(a is c)
print(a == c)

Saída:

True
False
True

Erros comuns

  • Usa == para números e texto. is com um literal pode parecer que funciona e depois falhar.

Pratique