¿Cuál es la diferencia entre ninguno y False en Python 3? (En un sentido boolean)

votos
-3

A veces parece pitón tratarlos como la misma mientras que otras veces se devuelve Falso Falso cuando se utiliza, pero no devuelve nada con ninguno. Parece que se comporten de manera muy diferente a nula en otros idiomas.

Algunos ejemplos específicos son:

Ninguno verdadero y falso devuelve nada y devuelve False Ninguno

Publicado el 07/11/2018 a las 22:32
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
3

Diferentes valores en Python pueden ser descritos como siendo "Truthy" o "Falsy", incluso si no son Booleanlos valores, lo que significa que se interpretan como Trueo Falseen una situación que espera un Booleanvalor (tal como un ifestado). Como se define en la documentación , cada valor en Python, independientemente del tipo, se interpreta como True excepto para los siguientes valores (que se interpretan como False):

  • Constantes definidas ser falsa: Noney False.
  • Cero de cualquier tipo numérico: 0, 0.0, 0j, Decimal(0),Fraction(0, 1)
  • Secuencias vacías y colecciones: '', (), [], {}, set(),range(0)

Para su situación específica, utilizando la ifsituación, la siguiente declaración:

if None:
    # some code here

sería funcionalmente idéntica a:

if False:
    # some code here

Esto es porque, como se muestra en la lista anterior, el valor Nonese convierte automáticamente a Falsea los efectos de la ifcondición. Esto es algo que se hace referencia como "azúcar sintáctico", que es una característica del lenguaje que existe para hacer la vida de los desarrolladores más fácil.

Sin embargo, sólo porque Noneestá interpretado como Falseen este escenario particular, eso no significa que los dos valores son iguales entre sí. Esto es porque Falseestá destinado a ser parte de la verdadera par / Falso indicando conceptos binarios como "sí / no", "on / off", etc. None, por el contrario, representa el concepto de nada . Las variables con un valor de Nonemedios no tienen ningún valor en absoluto. Para compararlo con Falsela forma de una metáfora, Falsesería como responder a alguien diciendo "No", donde Nonesería como no responder en absoluto.

Como un ejemplo más de programación orientada-, consulte el siguiente fragmento de código:

if None == False:
    # code in here would not execute because None is not equal to False
Respondida el 07/11/2018 a las 22:40
fuente por usuario

votos
-2

Nonees un singleton y Falsees un valor booleano.

En pitón tanto se comportan de la misma manera en un contexto booleano.

Ejemplo 1 :

if False:
    print("false")

if None:
    print("false")

Ninguna de las ifdeclaraciones imprime nada.


Sin embargo, como ya he dicho, no son el same.

Ejemplo 2 :

False == None
#False
Respondida el 07/11/2018 a las 22:39
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more