No, None
es solo lo mismo que None
sí mismo. Las cadenas vacías no son lo mismo:
>>> None == ""
False
None
es un valor especial singleton (solo hay una copia en una sesión de Python) que significa 'vacío', o la falta de un valor 'adecuado'. Como tal es un bandera o señal valor; Python lo usa por convención para indicar que un proceso no devolvió nada, por ejemplo.
Ambas cosas None
y la cadena vacía se considera falsa en un contexto booleano:
>>> bool(None)
False
>>> bool("")
False
como son todos los contenedores vacíos (como una tupla vacía, lista o conjunto) y 0 numérico (ya sea entero, punto flotante o un número complejo). Sin embargo, ser considerado falso no los hace igual.
Si querías probar ningún valor que es falso, use:
while not variable:
como not
Interpreta el operando en un contexto booleano y devuelve el valor inverso:
>>> not ""
True
>>> not None
True
>>> not "not empty"
False