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.
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
yelse
.
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
Nota: En Python, los bloques de código se definen por la indentación. Generalmente se usan 4 espacios o un tabulador. Si no se respeta esta indentación, se producirá un error de sintaxis.
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
Se evalúan las condiciones en orden. Si una de ellas se cumple, el resto se ignoran.
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()
.