Revista Tecnología

Introducción a Python: Condicionales

Publicado el 17 mayo 2018 por Technodyan

Este post es parte del Curso de introducción a Python 3:

  1. Introducción a Python: Porque programar con Python
  2. Instalación de Python 3 y IDLE
  3. Primer programa: “Hola Mundo”
  4. Tipos de datos en Python
  5. Asignación y uso de variables
  6. Valores booleanos
  7. Colecciones de datos en Python: Listas y Tuplas
  8. Condicionales: If, else, elif
  9. Ciclos en Python
  10. Definición y uso de funciones en Python
  11. Importación y uso de módulos en Python
  12. Uso de strings en Python

Introducción

Las condicionales o estructuras de control en programación son sentencias que nos permiten comprobar la existencia de ciertas condiciones para permitir cambiar el comportamiento de nuestro programa en consecuencia.

Condicionales

If

La sentencia condicional if es la forma más sencilla de comprobar si una condición se esta cumpliendo o no, y la incluimos en nuestro código de la siguiente forma:

if EXPRESION_BOOLEANA:
    CODIGO_A_EJECUTAR

Por ejemplo:

Como puedes ver, después de la expresión booleana (condición) y los dos puntos : dejamos un salto de línea y cierta sangría antes de continuar con el código que se va a ejecutar cuando la condición sea verdadera. Esta sangría es llamada indentación, y en Python es muy importante para mantener la consistencia de nuestro código. Aunque a Python 3 no le importa el tamaño de la indentación mientras sea usada de manera consistente, por norma general, esta indentación es igual a cuatro espacios en blanco o una tabulación; ten en cuenta que la indentación representa el bloque de código que se va a ejecutar cuando se cumpla la condición, y si el código no esta indentado, no será considerado parte del bloque condicional, como puedes ver abajo:

Por el contrario, si realizamos una indentación incorrecta o incosistente, Python nos regresará un error, ya que la indentación es utilizada por el interprete para organizar el código:

Si la condición retorna False, entonces el código simplemente no se ejecutará:

Dentro de nuestro bloque if siempre debe ir al menos una línea de código, sin embargo, si deseamos que no ocurra nada por alguna razón, podemos utilizar pass, sentencia pensada para reservar espacio para código aún no escrito.

Else

La sentencia else nos permite ejecutar código cuando la condición de la sentecia if no se cumpla; es util cuando dos posibilidades pueden ocurrir y queremos determinar que código ejecutar.

La sentencia else se utiliza sin indicar ninguna condición, de la siguiente manera:

if EXPRESION_BOOLEANA:
    CODIGO_A_EJECUTAR
else:
    CODIGO_A_EJECUTAR

Por ejemplo:

Si incluyes un bloque else, este debe aparecer inmediatamente después del if, sin ninguna línea independiente en medio, de lo contrario, obtendremos un error, como ocurriría con el siguiente código:

Esto ocurre ya que al imprimir la línea 4, la unión entre las sentencias if-else se rompe, y un bloque else nunca puede aparecer si no esta ligado a un bloque if.

De igual forma que el bloque contenido después de la sentencia if, después de else no tenemos un límite de líneas a escribir, pero tenemos que incluir al menos una línea de código.

Elif

La tercer estructura de control en Python es la sentencia elif, contracción de else if.

La condicional elif, al igual que else, se ejecuta sólo si la condición en if no se cumple, pero como if, permite especificar una condición que activará el código que contenga.

elif se incluye después de if, pero antes de else:

if EXPRESION_BOOLEANA:
    CODIGO_A_EJECUTAR
elif EXPRESION_BOOLEANA:
    CODIGO_A_EJECUTAR
else:
    CODIGO_A_EJECUTAR

Por ejemplo:

Cuando la sentencia elif es incluida, debe ir precedida de un if, pero no es necesario incluir un else después de elif.  A diferencia de la sentencia else, que sólo puede ser incluida una vez después de una condición, podemos incluir multiples bloques elif:

Es importante notar que la sentencia elif se ejecuta en lugar de if y no junto a esta. Como se puede ver en el siguiente código, donde ambas condiciones son iguales pero sólo un bloque de código se ejecuta:

Anidación

¿Qué debemos hacer si queremos ejecutar varias estructuras de control encadenadas? Para estos casos, existen los bloques anidados, es decir, bloques condicionales que estan dentro de otros bloques:

if EXPRESION_BOOLEANA:
    if EXPRESION_BOOLEANA:
        CODIGO_A_EJECUTAR

La sintaxis anterior es la forma más sencilla de utilizar condiciones anidadas, pero también podemos incluir bloques if-else-elif dentro de otros bloques if-else-elif sin ninguna restricción más allá de respetar la estructura de estos y aumentar la indentación según cada nivel de anidación, como en el ejemplo:

Cuando existen bloques anidados, las condiciones se evaluarán desde el nivel de menor indentación hasta el de mayor, en caso de que la primera condición no se cumpla, todo ese bloque se ignorará.

Conclusión

La inclusión de condicionales o estructuras de control en nuestro código es un elemento que nos permitirá volverlo más «inteligente», al poder reaccionar a diferentes situaciones. Sin embargo, es importante no abusar de las condiciones, ya que cada comparación ralentiza ligeramente nuestro programa, y cuando se llega a un numero muy grande de comparaciones el rendimiento del programa se verá afectado. De igual manera, es recomendable utilizar los bloques anidados de manera prudente, tanto por el rendimiento del programa, como por la legibilidad del código.

En el siguiente post exploraremos los ciclos repetitivos y su utilidad en Python.


Volver a la Portada de Logo Paperblog