10. Operadores and, or, not

Estos operadores sirven para hacer condiciones más complejas en una sentencia if.

Ejemplo para calcular si un año es bisiesto:

anio = int( input('Escribe un año:') )

if (anio % 4 == 0) and ( (anio % 100 != 0) or (anio % 400 == 0) ):
    print(anio, 'es bisiesto')
else:
    print(anio, 'no es bisiesto')

Aunque los paréntesis no siempre son obligatorios, es recomendable usarlos para que se pueda entender mejor el código.

Ejercicios

  1. Escribe un programa que pida el nombre del mes en el que estamos y compruebe si estamos o no en primavera.

    Para simplificar diremos que abril, mayo y junio son los meses de primavera.

    Pista:

    if (mes == 'abril') or (mes == 'mayo') or (mes == 'junio'):
       print('...')
    else:
    
  2. Escribe un programa que utilice el operador not para comprobar si un número introducido por el teclado es impar.

  3. Escribe un programa que utilice el operador and para comprobar si un nombre tiene una longitud entre 4 y 6 letras.

    La longitud de una cadena de texto se mide con la función len().

    Pista:

    >>> len('Sara')
        4
    >>> len('Santiago')
        8
    
  4. Escribe un programa que responda que tienes que conectar el riego por goteo siempre que sea de noche y que no esté lloviendo.

    Pista:

    sensor_lluvia = True
    sensor_de_dia = True
    
    if ... :
        print('Conecta el riego por goteo.')
    else:
        print('Desconecta el riego por goteo.')
    

    Prueba el programa con las cuatro combinaciones posibles en los sensores. ¿Qué combinaciones hacen que se conecte el riego?

  5. Escribe un programa que imprima un mensaje cuando un número sea positivo, sea par y no sea divisible por 3. En caso contrario no imprime ningún mensaje.

    Pista:

    num = int( input('Escribe un número:') )
    if ... :
       print(num, 'es positivo, es par y no es divisible por 3.')