Control de flujo

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

Loading

You must be logged in to take the quiz.