10. and, or, not operators

These operators are used to make more complex conditions in an if statement.

Ejemplo para calcular si una persona puede subir a una montaña rusa. Solo podrá subir si su altura en centímetros es mayor o igual a 150 y también debe ser menor o igual a 200:

altura = input('Escribe tu altura en centímetros: ')
altura = int(altura)

if (altura >= 150) and (altura <= 200):
    print('Puedes pasar')
else:
    print('No puedes pasar')

Example to calculate if a year is a leap year:

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

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

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

Exercises

  1. Write a program that asks for the name of the month we are in and checks whether it is spring or not.

    To simplify we will say that April, May and June are the spring months.

    Clue:

    mes = input('Escribe el nombre de un mes: ')
    if (mes == 'abril') or (mes == 'mayo') or (mes == 'junio'):
       print('...')
    else:
       print('...')
    
  2. El siguiente programa comprueba si un número es par. Modifica el programa utilizando el operador not para que compruebe si el número es impar:

    num = input('Escribe un número: ')
    num = int(num)
    
    if (num % 2 == 0):
        print('El número es par')
    
  3. Write a program that uses the and operator to check if a name is between 4 and 6 letters long.

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

    >>> len('Ana')
        3
    >>> len('Gustavo')
        7
    

    Clue:

    nombre = input('Escribe un nombre: ')
    letras = len(nombre)
    
    if ... :
        print('El nombre tiene entre 4 y 6 letras')
    
  4. Escribe un programa que responda que tienes que conectar el riego por goteo siempre que sea de noche (no de día) y que esté el suelo seco (no está lloviendo).

    Clue:

    sensor_lluvia = 1
    sensor_de_dia = 0
    
    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. Solo debe funcionar cuando el sensor de lluvia valga cero y el sensor de día valga cero.

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

    Clue:

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