Una pregunta sobre la identidad y booleano en python3

votos
0

Tengo una pregunta acerca de la identidad en Python, soy un principiante en Python y he leído algunos cursos de se palabra clave y no es. Y no entiendo por qué la operación de falsa no no es cierto es cierto no es falso no es verdad es igual a False en Python? Para mí esta operación tiene que devolver True.

Publicado el 09/10/2019 a las 18:57
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
3

Python cadenas comparaciones :

Formalmente, si a, b, c, …, y, zson expresiones y op1, op2, …, opNson operadores de comparación, entonces a op1 b op2 c ... y opN zes equivalente a a op1 b and b op2 c and ... y opN z, excepto que cada expresión se evalúa como máximo una vez.

Su expresión es:

False is not True is not True is not False is not True

Que se convierte en:

(False is not True) and (True is not True) and (True is not False) and (False is not True)

Que es equivalente a:

(True) and (False) and (True) and (True)

Lo cual es False.

Respondida el 09/10/2019 a las 19:19
fuente por usuario

votos
2

isse refiere a la identidad .

Cuando le preguntas if x is y, en realidad está pidiendo es xy yel mismo objeto ? (Tenga en cuenta que esta es una pregunta diferente que hacer xy ytienen el mismo valor? )

Del mismo modo cuando se pregunta if x is not y, en realidad está pidiendo son xy ydiferentes objetos?

Específicamente en lo que respecta a Truey False, Python trata a aquellos como únicos , lo que significa que hay solo un Falseobjeto en un programa completo. Cada vez que se asigna a somnething False, que es una referencia al único Falseobjeto, y así todos los Falseobjetos tienen la misma identidad .

Respondida el 09/10/2019 a las 19:05
fuente por usuario

votos
0

Que se trata de la lógica. Ayuda a pensar en verdaderos y falsos = 1 = 0.

Piensa en ello de esta manera. 0 no es 1, que devolverá true porque el número 0 no es el número 1 y es un verdadero DECLARACIÓN. El mismo concepto de verdadero y falso

0 is not 1
#this will return False
False is not True
#the computer reads this in the exact same manner.
Respondida el 09/10/2019 a las 19:00
fuente por usuario

votos
-1

Se depende en el orden de ejecución por ejemplo, esta línea cuando introducimos paréntesis para forzar el fin conseguimos verdadera.

(((False is not True) is not True) is not False) is not True
True

Sin embargo, su línea de código es equivalente a:

  False is not (True is not True) is not False is not True
  False
Respondida el 09/10/2019 a las 19:12
fuente por usuario

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