Programación en Python

0 de 19 lecciones completas (0%)

Programación en Python – Módulo 4 – Estructuras de Control

Lección 10 – Condicionales (if, else, elif)

Esta es una vista previa de la lección

Compra el curso, o accede si ya te has inscrito, para acceder a esta lección.

Una de las principales funciones de la programación es la de decidir qué hacer si determinada situación se cumple, cuándo repetir acciones, cuándo detenerlas o elegir entre varias opciones de acciones a ejecutar. La idea es que tu programa debe examinar un grupo de condiciones y decidir qué curso de acción tomar basado en esas condiciones. La declaración if nos permite examinar el estado actual de nuestro programa y actuar en consecuencia.

La programación en Python se beneficia de las declaraciones condicionales como if, else, y elif, que permiten ejecutar diferentes bloques de código según las condiciones establecidas. Vamos a explorar cada declaración detalladamente con ejemplos prácticos.

Tal vez puedas entender esto mejor si comparas las declaraciones de control directamente con los símbolos de un diagrama de flujo.

Principios de control de flujo en Python

Las declaraciones de control de flujo a menudo inician con una condición y después vienen seguidas de un bloque de código conocido como cláusula. Veamos estos elementos en detalle.

Condiciones

Las expresiones booleanas que vimos anteriormente son también conocidas como condiciones. Siempre se evalúan ya sea a True (verdadero) o False (falso). Nuestras declaraciones de flujo decidirán qué hacer con la ejecución del programa dependiendo de si el valor es True o False.

Bloques de código

Los bloques de código en Python se definen mediante la indentación. Cada línea que pertenece a un mismo bloque debe tener la misma cantidad de espacios al principio. Veamos este ejemplo, es el mismo código que verás debajo en la explicación de la declaración if, pero me servirá para explicar los bloques.

# Declaración if
age = 18

if age >= 18:
    print("Eres mayor de edad.") # Aquí inicia un bloque porque cambió la indentación
  

El flujo del programa

El flujo «normal» de un programa es empezar desde arriba e ir ejecutando líneas de código, una por una, hasta el final del documento. Con las declaraciones de control de flujo puedes modificar este comportamiento porque de acuerdo con determinadas condiciones unas líneas de código se ejecutarán y otras no. Estas fueron muchas palabras y creo que todo cobrará sentido si vemos ejemplos de código para clarificar.

Voy a crear un nuevo archivo condicionales.py para escribir el código de esta lección.

Declaración if

La estructura básica de la declaración if es simple: si una condición es verdadera, se ejecuta un bloque de código.

# Declaración if
age = 18

if age >= 18:
    print("Eres mayor de edad.")
  

En este caso, el programa imprimirá «Eres mayor de edad» porque la condición age >= 18 es verdadera. Si el valor de age fuera menor que 18, como 16 o 15, no se imprimiría el mensaje.

Declaración else

Opcionalmente se puede añadir un bloque else a la cláusula if. La declaración else se ejecuta únicamente si la condición en la declaración if es falsa. La declaración else no tiene condición.

# Declaración else
y = 3
if y > 5:
    print("y es mayor que 5")
else:
    print("y no es mayor que 5")

Dado que la condición y > 5 es falsa, se ejecuta el bloque else, imprimiendo «y no es mayor que 5».

Declaración else Python
Declaración else en Python
Declaración else Python flujo
Diagrama de la declaración if, else

Declaración elif (if else anidada)

Se pueden anidar declaraciones if y else para manejar múltiples condiciones. La declaración elif es una declaración «else if» que siempre va después de un if o de otra declaración elif. Nos permite verificar una nueva condición si todas las condiciones anteriores fueron False.

# Declaración elif
z = 7
if z > 10:
    print("z es mayor que 10")
elif z > 5:
    print("z es mayor que 5 pero no mayor que 10")
else:
    print("z no es mayor que 5")

Aquí, el programa evalúa las condiciones secuencialmente e imprime el mensaje correspondiente.

Primero, el programa verifica si z es mayor que 10, como no es el caso se va a la siguiente línea donde eválua si z es mayor que 5, como se cumple la condición (se evalúa a True) se imprime el mensaje de ese bloque de código «z es mayor que 5 pero no mayor que 10». Intenta cambiar el valor de z a otros números, 3 o 12 por ejemplo, para que compruebes cómo cambia el mensaje impreso en la consola.

En este punto voy a modificar el programa un poco para que veas que las declaraciones elif pueden aparecer más de una vez en una misma evaluación.

# Declaración elif
z = 7
if z > 10:
    print("z es mayor que 10")
elif z > 8:
    print("z es mayor que 8 pero no mayor que 10")
elif z == 7:
    print("z es exactamente 7")
else:
    print("z no es mayor que 5")

Declaración elif Python dos elif
Dos declaraciones elif diagrama

Operador ternario

Este operador sirve para daros una versión simplificada del if-else. Para entenderlo comencemos con un if-else regular.

edad = 18

if edad > 20:
    print("Tiene más que 20")
else:
    print("Tiene menos que 20")

A estas alturas ya sabes cuál es la salida de este programa, fácil. Vamos a hacer algo diferente. El print lo voy a sacar del bloque if-else y voy a crear una variable con el mensaje.

edad = 18

if edad > 20:
    mensaje = "Tiene más que 20"
else:
    mensaje = "Tiene menos que 20"

print(mensaje)

Este código funciona, pero demos un paso más. Voy a comentar todo el código if-else con Ctrl + } (En Windows).

edad = 18

# if edad > 20:
#     mensaje = "Tiene más que 20"
# else:
#     mensaje = "Tiene menos que 20"

print(mensaje)

A continuación voy a escribir el ternario para que devuelva un valor si nuestra variable es mayor que 20, y otro diferente si no es el caso.

edad = 18

mensaje = "Tiene más que 20" if edad > 20 else "Tiene menos que 20"

# if edad > 20:
#     mensaje = "Tiene más que 20"
# else:
#     mensaje = "Tiene menos que 20"

print(mensaje)

El ternario en Python se escribe con un primer valor si la condición del medio es cierta, en este caso if edad > 20 y un segundo valor en el extremo si la condición no es cierta.

Estas declaraciones permiten que un programa tome decisiones dinámicamente, adaptándose a diferentes situaciones durante la ejecución. En la siguiente clase veremos los bucles.

Scroll al inicio