lunes, 23 de enero de 2017

[Tutorial Python] 7. Estructura condicional: if, else y elif


Entrada anterior: 6. Jerarquía de operaciones.

También llamada estructura de control de flujo condicional, la estructura condicional es una herramienta importante en la programación, pues nos permite evaluar un valor dado con un valor de referencia -los cuales pueden ser proporcionados por el usuario o por el programa-.

Para comparar, primero necesitamos saber los diferentes tipos de comparaciones que podemos hacer:
  1. x mayor que y (x > y)
  2. x menor que y (x < y)
  3. x mayor o igual a y (x >= y)
  4. x menor o igual a y (x <= y)
  5. x igual a y (x == y)
  6. x diferente a y (x != y)
Las variables "x" y "y" pueden ser sustituidas por el nombre de cualquier otra variable.

Ahora, la función if es una manera de preguntar si la comparación que nosotros estamos haciendo es verdadera o falsa, nada más.

Imaginemos que antes de abrir la nevera nos decimos a nosotros mismos: "Si hay más de 5 huevos no compraré más, pero si hay 5 huevos o menos entonces iré a la tienda a comprar más". Esta oración resume cómo trabaja la función if.

La sintaxis de esta función es la siguiente:

if condición:
    órdenes a ejecutar si la función es verdadera

¿Notaste algo raro? Quizá te diste cuenta que el inicio de la primera linea no está alineado con el de la segunda. A este espacio que se deja se le llama indentación o sangría y en Python es necesario dejarlo para que las órdenes sólo se ejecuten si la condición es verdadera. Si instalaste PyCharm este espacio se colocará de manera automática.

Veamos un ejemplo:

x = 3
y = 8
if x < y:
    print("\nY es mayor que X")

Al ejecutar el programa veremos que esto aparecerá en pantalla:

Esto es debido a que el programa encontró que la condición que impusimos es verdadera y, por lo tanto, cumple las órdenes que indicamos. De haber encontrado que la condición es falsa, el software no cumpliría las órdenes. Prueba cambiando los valores de las variables y cambiando las órdenes a cumplir.

La función else es un complemento opcional de la función if y sirve para ejecutar órdenes si la condición que impusimos es falsa. Utilizando el ejemplo anterior y modificándolo un poco quedaría algo así:

x = 6
y = 1
if x < y:
    print("\nY es mayor que X")
else:
    print("\nY es menor a X o igual")

Observa que en este caso la variable "x" es mayor que la variable "y", por lo tanto la condición es falsa y, en lugar de ejecutar la orden debajo de if, el programa ejecutará la orden debajo de else.


Relaciona lo siguiente: Lo que esté debajo de if se ejecutará si la condición es verdadera y lo que esté debajo de else se ejecutará si la condición es falsa. No se pueden ejecutar las dos.

Por otro lado, la función elif es una manera de anidar condiciones, o sea, darle opción a un cierto valor de cumplir varias condiciones y cumplir la orden de la primera condición que sea verdadera. Por ejemplo:

x = 5
if x < 10:
    print("\nX es menor que 10")
elif x > 2:
    print("\nX es mayor que 2")
elif x <= 5:
    print("\nX es menor a 5 o igual")
elif x != 4:
    print("\nX es diferente que 4")
elif x == 5:
    print("\nX es igual a 5")

En este caso el programa cumplirá la orden debajo de if y mostrará en pantalla "X es menor que 10", e ignorará las demás condiciones. Ahora modifiquemos un poco el código.

x = 5
if x > 10:
    print("\nX es menor que 10")
elif x < 2:
    print("\nX es menor que 2")
elif x <= 5:
    print("\nX es menor a 5 o igual")
elif x != 4:
    print("\nX es diferente que 4")
elif x == 5:
    print("\nX es igual a 5")

En el ejemplo actual no se cumplen ni la primera ni la segunda condición, pero la tercera sí, por lo que el programa sólo mostrará en pantalla "X es menor a 5 o igual" y, como en el caso anterior, ignorará las demás condiciones.

Para ejercitar, modifica las condiciones de tal manera que cada una de ellas tenga su turno de ser verdadera e intenta combinar las tres funciones: if, elif y else.

Eso es todo por hoy, lectores. Cualquier duda, comentario, sugerencia u aportación escríbeme más abajo. Hasta el siguiente post.

Entrada siguiente: 8. Bucles I: Función For.