Negacion de valores
Contents
Habrán ocasiones en las que queramos negar un valor, es decir, recordemos que la llave para entrar en un bloque if
es que la condición se evalúe a True
, pero que tal si queremos saber si un valor es Falso?.
Para esto podemos negar un valor, de esta forma True
se convierte en False
y False
se convierte en True
. El operador que nos permite hacer esta negación es: not
if not 1 > 10: # Ejecuta el bloque
1 no es mayor que 10, pero en este caso estamos negando el valor y convirtiendo False
a True
.
Podemos mezclar el operador con and
y or
:
if not 1 > 10 and 10 < 20: # Ejecuta el bloque
Esta comparación se lee “Si 1 no es menor que 10 y 10 no es menor que 20”, entonces entendemos que el operador not
aplica solo para la comparación que sigue, si quisiéramos aplicarla a toooooda la condición deberíamos englobar la condición en paréntesis.
if not (1 > 10 and 10 < 20):
Podemos poner multiples not
en las comparaciones, ojo, no me refiero a “not not
” me refiero a algo asi:
if not usuario.hermanos and not usuario.hermanas: usuario.hijo_unico = True
También podemos usar not
para evaluar elementos en listas/tuplas o diccionarios.
>>> a = range(10) >>> 20 in a False >>> not 20 in a True >>>
>>> 'direccion' in datos False >>> 'apellidos' in datos True >>> >>> if not 'direccion' in datos: ... print "Pregunta datos" ... Pregunta datos
You must be logged in to take the quiz.