1
resposta

Porque em if None se comporta como falso e fora do if não ?

Apesar de None ser considerado um valor falso (em um if, por exemplo), None não é igual a False.

1 resposta

Olá Isabela, tudo bem com você?

Essa diferença existe devido os dois serem de tipos diferentes, o None é do tipo NoneType já o False é do tipo bool. Como mostrado abaixo.

print(type(None))
print(type(False))

print(None == False)

Resultado

<class 'NoneType'>
<class 'bool'>

False

Podemos converter o None para o tipo bool, obtendo o seguinte resultado.


print(bool(None))


Resultado

False

O None funciona como o False na cláusula if devido ao valor de None ser False, os dois possuem o mesmo valor mas não o mesmo tipo, por isso quando comparamos os dois recebemos como resposta que não são iguais, como apresentado acima.

Foco à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software