Estructuras de control

Condicionales


En programación estructurada, las estructuras de control son mecanismos que permiten modificar el flujo natural de ejecución de un programa. Hasta ahora, hemos trabajado con estructuras secuenciales, donde las instrucciones se ejecutan en el orden en que fueron escritas. Sin embargo, en la práctica, muchas veces es necesario que el programa tome decisiones o repita ciertas acciones. Aquí es donde entran en juego las estructuras de control.

Estas estructuras permiten que un programa:
  • Tome decisiones, eligiendo entre varias opciones posibles.
  • Repita bloques de instrucciones, mientras se cumpla una condición o durante un número determinado de veces.

En Python, podemos clasificar las estructuras de control en dos grandes grupos:

  • Estructuras condicionales: permiten ejecutar distintos bloques de código según se cumpla o no una condición.
  • Estructuras repetitivas: permiten repetir un bloque de instrucciones varias veces mientras se cumpla una condición determinada.
Ambos tipos de estructuras amplían significativamente las capacidades de nuestros programas, haciéndolos más dinámicos, inteligentes y útiles en distintos contextos.

Un aspecto fundamental a tener en cuenta en Python es la indentación (tabulación o sangría), ya que se utiliza para definir los bloques de código. Una correcta indentación no solo evita errores, sino que también mejora la legibilidad del programa.


Condicionales:

Las estructuras condicionales, también conocidas como estructuras alternativas, permiten que un programa tome decisiones evaluando una condición lógica. Según el resultado (verdadero o falso), el flujo del programa se puede desviar para ejecutar una acción específica.

Existen tres tipos principales de estructuras condicionales en Python:

  • Alternativa simple: Se ejecuta una única acción si se cumple una condición. Si no se cumple, no ocurre nada.
  • Alternativa doble: Permite elegir entre dos acciones distintas: una se ejecuta si la condición se cumple, y la otra si no.
  • Alternativa múltiple: Permite evaluar varias condiciones distintas y ejecutar diferentes bloques de código según cuál se cumpla. En Python se logra utilizando if, elif y else.


Instrucción if, else y elif:

Condicional if:

La instrucción if se utiliza para ejecutar un bloque de código solo si se cumple una condición. La sintaxis básica es la siguiente:

if condición:
    bloque_de_código

Ejemplo:
numero = int(input("Introduce un número: "))
if numero > 0:
    print("El número es positivo.")

En este ejemplo, si el valor introducido es mayor que cero, se mostrará el mensaje en pantalla. De lo contrario, el programa no hará nada.

Conceptos clave:
  • La condición se coloca justo después del if y termina con dos puntos :.
  • Si la condición se evalúa como True, se ejecuta el bloque indentado.
  • Si se evalúa como False, se ignora dicho bloque.
Comparadores comunes:
  • == Igual a
  • != Distinto de
  • > Mayor que
  • < Menor que
  • >= Mayor o igual que
  • <= Menor o igual que
Sentencia else:

La instrucción else permite definir un bloque de código que se ejecutará solo si la condición del if no se cumple. Es decir, proporciona una alternativa.

if condición:
    bloque_si_verdadero
else:
    bloque_si_falso
Ejemplo:
edad = int(input("Introduce tu edad: "))
						  
if edad >= 18:
    print("Eres mayor de edad.")
else:
    print("Eres menor de edad.")

Aquí, si la edad es mayor o igual a 18, se ejecuta el primer bloque. Si no, se ejecuta el segundo.

Sentencia elif:

La palabra clave elif (abreviación de else if) permite encadenar múltiples condiciones. Es útil cuando se necesitan evaluar varias alternativas de manera secuencial.

if condición1:
    bloque1
elif condición2:
    bloque2
elif condición3:
    bloque3
else:
    bloque_por_defecto

Ejemplo:
numero = int(input("Introduce un número: "))
						  
if numero > 0:
    print("El número es positivo.")
elif numero < 0:
    print("El número es negativo.")
else:
    print("El número es cero.")

Este programa evalúa tres posibles situaciones: si el número es positivo, negativo o igual a cero.


Condiciones múltiples:

Las condiciones pueden combinarse utilizando los operadores lógicos:

  • and: ambas condiciones deben ser verdaderas.
  • or: al menos una debe ser verdadera.
  • not: invierte el valor lógico.
Ejemplo:
x = 10
if x > 5 and x < 15:
    print("El número está entre 5 y 15.")

Instrucción pass:

En ocasiones, puede ser necesario escribir una sentencia if sin código por el momento (por ejemplo, cuando aún no se ha definido qué hacer en ese caso). Python no permite bloques vacíos, por lo que se utiliza la instrucción pass como marcador:

if True:
    pass  # aún no hay implementación

pass simplemente indica que no se realizará ninguna acción.


Instrucción en una sola línea:

Si el bloque de código es muy corto, se puede escribir en una sola línea, justo después de los dos puntos:

if x > 0: print("Positivo")

También se pueden escribir varias instrucciones en la misma línea, separadas por punto y coma ;:

if x > 0: print("Positivo"); print("Mayor que cero")

Aunque esto es válido, no se recomienda en código real porque puede dificultar la lectura.


Operador ternario:

Python permite expresar una condición if-else en una sola línea mediante el operador ternario. Su sintaxis es:

valor_si_verdadero if condición else valor_si_falso
Ejemplo:
a = 10
b = 0
c = a / b if b != 0 else -1
print("Resultado:", c)

Si b es diferente de cero, se realiza la división. En caso contrario, c toma el valor -1.

Este operador es especialmente útil para asignaciones rápidas o expresiones dentro de una función como print().