Estructuras de Control. Las estructuras de control son fundamentales en la programación ya que permiten dirigir el flujo de ejecución de un programa basándose en condiciones y repeticiones. En este capítulo, aprenderás a utilizar las declaraciones condicionales (if
, elif
, else
) para tomar decisiones dentro de tu código, y los bucles (for
, while
) para realizar tareas repetitivas de manera eficiente. Además, aprenderás técnicas como el uso de listas y el manejo de control de flujo con las sentencias break, continue y pass, que te permitirán gestionar situaciones especiales dentro de los bucles.
Empecemos por las sentencias condicionales.
@Tip. Antes de empezar tengo que destacar que al final de cada sentencia de control hay que acabarla con el símbolo :
, y en la siguiente línea y de forma indentada el bloque funcional que se vaya a ejecutar.
UnionSine Disco Duro Externo 1TB 2.5" USB3.0 Ultra Slim Portátil HDD Almacenamiento para PC, Mac, MacBook, Chromebook, Xbox, PS4 (Color Negro) HD2510
49,99 € (a partir de agosto 21, 2025 10:07 GMT +01:00 - Más informaciónLos precios y la disponibilidad de los productos son exactos a partir de la fecha/hora indicada y están sujetos a cambios. Cualquier información de precio y disponibilidad que se muestre en [los sitios de Amazon relevantes), según corresponda] en el momento de la compra se aplicará a la compra de este producto.)Condicionales: if
, elif
, else
Los condicionales permiten que un programa ejecute diferentes bloques de código dependiendo del resultado de evaluar una condición lógica. En Python, las condiciones se escriben con las palabras clave if
, elif
(abreviatura de «else if») y else
.
1. if
(si)
Evalúa una condición y si es True
(verdadera), ejecuta el bloque de código correspondiente.
- Veamos un ejemplo en el que el programa mostrará por pantalla el mensaje «Eres mayor de edad» solo si la edad es mayor o igual que 18, en caso contrario no hará nada.
edad = 18
if edad >= 18:
print("Eres mayor de edad")
2. elif
(sino si)
- Python permite realizar nuevas consultas condicionales si la primera condición (
if
) es falsa. - Ejemplo: En este caso, el ejemplo mostrará por pantalla «Casi eres mayor de edad», pues la primera condición es falsa, pero al segunda es correcta pues edad es mayor o igual que 16.
edad = 17
if edad >= 18:
print("Eres mayor de edad")
elif edad >= 16:
print("Casi eres mayor de edad")
@Tip: Se pueden incluir tantos (elif) como necesitemos para evaluar distintas condiciones.
3. else
(sino)
- Se ejecuta si todas las condiciones anteriores (
if
yelif
) son falsas. - Ejemplo: En este caso el resultado será «Todavía eres un niño».
edad = 8
if edad >= 18:
print("Eres mayor de edad")
elif edad >= 16:
print("Casi eres mayor de edad")
elif edad >= 14:
print("Ya eres adolescente")
else:
print("Todavía eres un niño")
4. Uso de operadores lógicos en condicionales
- Puedes combinar condiciones usando operadores lógicos como
and
(y),or
(o), ynot
(no) con el fin de definir condiciones más complejas. - Ejemplo:
edad = 20
pais = "España"
if edad >= 18 and pais == "España":
print("Puedes votar en España")
- Es importante hacer uso de los (). Esto permite hacer el código más legible además evitar errores. El resultado de la condición puede variar según hayamos colocado los paréntesis. En el siguiente ejemplo, vemos como la salida por pantalla es diferente de la opción 1 a la opción 2 a pesar de tener las mismas condiciones.
a = 5
b = 10
c = 15
# Ejemplo sin paréntesis
resultado_1 = a < b and b > c or a > c
print("Resultado sin paréntesis:", resultado_1) # True
# Ejemplo con paréntesis
resultado_2 = a < b and (b > c or a > c)
print("Resultado con paréntesis:", resultado_2) # False
Bucles: for
, while
Los bucles permiten ejecutar un bloque de código repetidamente. Python admite dos tipos de bucles: for
y while
.
1. Bucle for
- Un bucle
for
se utiliza para iterar sobre una secuencia (como una lista, una cadena o un rango de números). - Ejemplo: Iterar sobre una lista. Este ejemplo mostrará por pantalla las frutas «manzana», «banana» y «cereza», que son los elementos que componen la lista «frutas».
frutas = ["manzana", "banana", "cereza"]
for fruta in frutas:
print(fruta)
- Ejemplo: Para iterar sobre un rango de números utilizamos la directiva range()
for i in range(5): # Itera desde 0 hasta 4
print(i)
Bucle while
- Un bucle
while
repite un bloque de código siempre que una condición sea verdadera. Se usa cuando no se sabe de antemano cuántas veces debe repetirse el bucle. - Ejemplo: En este ejemplo imprimimos los números del 0 al 4
contador = 0
while contador < 5:
print("Contador:", contador)
contador += 1 # Incrementa el contador
Listas
Las listas son una estructuras de datos que almacenan un grupo de valores. Python, proporciona diferentes maneras de crear listas. que permite generar una lista nueva aplicando una operación o filtrado sobre una secuencia existente en una sola línea de código.
Sintaxis básica
Para crear una lísta se indica el nombre que queremos dar a la lista, después el símbolo = y a continuación entre [] el conjunto de valores separados por comas.
lista_nombres = ["Juan", "Pedro", "Andrés"]
dias_semana = ["Lunes", "Martes, "Miércoles", "Jueves", "Virnes", "Sábado", "Domingo"]
- Pero también podemos utilizar iteradores para crear listas:
[expresion for elemento in iterable]
Ejemplo: Crear una lista con los cuadrados de los números del 0 al 9
cuadrados = [x**2 for x in range(10)]
print(cuadrados) # Salida: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Creación de listas con condicionales (if
)
- También puedes añadir condiciones para filtrar elementos.
- Ejemplo: Crear una lista con solo los números pares del 0 al 9
pares = [x for x in range(10) if x % 2 == 0]
print(pares) # Salida: [0, 2, 4, 6, 8]
Anidación en la creación de listas
- Otra manera de crear listas con operaciones más complejas es mediante bucles anidados.
- Ejemplo: Crear una matriz (lista de listas) de 3×3
matriz = [[fila * columna for columna in range(3)] for fila in range(3)]
print(matriz) # Salida: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]
Control de flujo: break
, continue
, pass
Python ofrece ciertas instrucciones que permiten modificar el comportamiento normal de los bucles.
1. break
break
se utiliza para terminar un bucle antes de que haya recorrido todos los elementos.- Ejemplo:
for i in range(10):
if i == 5:
break # El bucle se interrumpe cuando i es igual a 5
print(i)
# Salida: 0, 1, 2, 3, 4
2. continue
continue
se utiliza para saltarse el resto del código dentro del bucle y volver al inicio de la siguiente iteración.- Ejemplo: Vamos a imprimir los número impares del 1 al 10.
for i in range(10):
if i % 2 == 0:
continue # Salta el resto del código si i es par
print(i)
# Salida: 1, 3, 5, 7, 9
3. pass
pass
no hace nada, es una operación nula. Se utiliza como un marcador de posición cuando se requiere una instrucción, pero no se desea ejecutar ningún código.- Ejemplo:
for i in range(5):
if i == 3:
pass # No hace nada cuando i es igual a 3
else:
print(i)
# Salida: 0, 1, 2, 4
Ejemplo Completo
Aquí tienes un ejemplo que combina condicionales, bucles y control de flujo:
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for numero in numeros:
if numero % 2 == 0:
print(f"{numero} es par")
else:
print(f"{numero} es impar")
if numero == 5:
print("Encontré el número 5, saliendo del bucle.")
break # Termina el bucle cuando encuentra el número 5
# El resultado del script será:
1 es impar
2 es par
3 es impar
4 es par
5 es impar
Encontré el número 5, saliendo del bucle.
Este punto cubre las herramientas clave para controlar el flujo de un programa Python, desde la toma de decisiones hasta la ejecución repetitiva de bloques de código. La comprensión de estas estructuras es esencial para desarrollar programas eficientes y legibles.
A continuación te propongo unos ejercicios para que puedas ir practicando.
Ejercicio 1: Número Mayor
Escribe un programa que solicite tres números al usuario y determine cuál es el mayor de los tres. Si los números son iguales, indícalo también.
Escribe un programa que solicite tres números al usuario y determine cuál es el mayor de los tres. Si los números son iguales, indícalo también.
# Solicitar tres números al usuario
num1 = float(input("Ingresa el primer número: "))
num2 = float(input("Ingresa el segundo número: "))
num3 = float(input("Ingresa el tercer número: "))
# Usamos estructuras condicionales para comparar los números
if num1 > num2 and num1 > num3:
print(f"El número mayor es: {num1}")
elif num2 > num1 and num2 > num3:
print(f"El número mayor es: {num2}")
elif num3 > num1 and num3 > num2:
print(f"El número mayor es: {num3}")
else:
# Si todos son iguales
print("Los tres números son iguales")
Explicación:
- Se solicitan tres números al usuario.
- Se usan condiciones
if-elif-else
para comparar los tres números y determinar cuál es el mayor. - Si los tres números son iguales, el programa lo indica con la condición por defecto.
Ejercicio 2: Suma de Números Pares
Escribe un programa que solicite al usuario un número entero positivo y calcule la suma de todos los números pares desde 1 hasta ese número usando un bucle for
.
Escribe un programa que solicite al usuario un número entero positivo y calcule la suma de todos los números pares desde 1 hasta ese número usando un bucle
for
.# Solicitar un número entero positivo al usuario
numero = int(input("Ingresa un número entero positivo: "))
# Variable para almacenar la suma de los números pares
suma_pares = 0
# Usamos un bucle for para recorrer desde 1 hasta el número ingresado
for i in range(1, numero + 1):
if i % 2 == 0: # Verificamos si el número es par
suma_pares += i # Si es par, lo añadimos a la suma
# Mostramos el resultado final
print(f"La suma de los números pares desde 1 hasta {numero} es: {suma_pares}")
Explicación:
- Se solicita al usuario un número entero positivo.
- Un bucle
for
recorre todos los números desde 1 hasta el número dado. - Dentro del bucle, usamos
if
para verificar si el número es par (condicióni % 2 == 0
). - Si es par, se suma a la variable
suma_pares
, que almacena la suma total de los números pares.
Ejercicio 3: Contar Vocales en una Cadena
Escribe un programa que solicite al usuario una cadena de texto y cuente cuántas vocales (a, e, i, o, u) contiene usando un bucle while
.
Escribe un programa que solicite al usuario una cadena de texto y cuente cuántas vocales (a, e, i, o, u) contiene usando un bucle
while
.# Solicitar una cadena de texto al usuario
cadena = input("Ingresa una cadena de texto: ")
# Inicializamos un contador para las vocales
contador_vocales = 0
# Definimos un conjunto de vocales
vocales = "aeiouAEIOU"
# Inicializamos una variable índice para el bucle while
i = 0
# Usamos un bucle while para recorrer la cadena de texto
while i < len(cadena):
if cadena[i] in vocales: # Verificamos si el carácter actual es una vocal
contador_vocales += 1 # Si es una vocal, incrementamos el contador
i += 1 # Incrementamos el índice para movernos al siguiente carácter
# Mostramos el resultado final
print(f"La cadena contiene {contador_vocales} vocales.")
Explicación:
- Se solicita al usuario una cadena de texto.
- Usamos una variable
contador_vocales
para contar cuántas vocales hay en la cadena. - Se define un conjunto de vocales (
aeiouAEIOU
) para tener en cuenta tanto minúsculas como mayúsculas. - Un bucle
while
recorre la cadena carácter por carácter. Si el carácter está en el conjunto de vocales, incrementamos el contador. - Finalmente, mostramos cuántas vocales contiene la cadena.
Bibliografía de Python de interés.
- Curso de Programación Python. Autor: Arturo Montejo Ráez y Salud María Jiménez Zafra (Editorial Anaya)
- Aprende Python desde cero hasta avanzado. Autor: Xavier Reyes Ochoa (Editorial Book Shelter GmbH)
- Aprende la Programación Orientada a Objetos con el lenguaje Python. Autor: Vincent Boucheny (Editorial Ediciones ENI)
- 100 Ejercicios Python para praticar. Autor: Laurentine K.Masson (Editorial: Publicación Independiente).