Control de Flujo en Python: Guía Clara de Condicionales, Bucles y Más [2025]
Condicionales: if, elif, else
En Python, las estructuras condicionales if
, elif
y else
son fundamentales para controlar el flujo de un programa y tomar decisiones según condiciones específicas. Permiten que tu código se comporte de manera diferente dependiendo de los valores o resultados que se estén evaluando.
La palabra clave if
se utiliza para evaluar una primera condición. Si esa condición es verdadera (True
), se ejecuta el bloque de código indentado que le sigue. Si no, el programa continúa evaluando el resto de condiciones o simplemente las ignora.
elif
significa «else if», y se usa cuando quieres comprobar una o más condiciones adicionales si la condición inicial del if
fue falsa. Puedes usar tantos elif
como necesites.
La cláusula else
se ejecuta cuando ninguna de las condiciones anteriores (if
o elif
) se ha cumplido. Es el camino por defecto.
🔍 Reglas importantes
- La sintaxis debe estar correctamente indentada (4 espacios por nivel de bloque).
- Puedes tener solo un
if
y unelse
, pero varioselif
si lo necesitas. - Las condiciones se evalúan en orden, y solo se ejecuta la primera que sea verdadera.
🎯 Cuándo usar if
, elif
y else
Estas estructuras son útiles para:
- Validar formularios o datos ingresados por el usuario
- Construir menús de opciones
- Determinar el comportamiento del programa según múltiples escenarios
- Evaluar rangos numéricos (edades, precios, puntuaciones, etc.)
- Controlar la lógica de videojuegos, bots o scripts
Sintaxis básica
python
edad = 25
if edad >= 18:
print("Es mayor de edad")
elif edad >= 13:
print("Es adolescente")
else:
print("Es niño")
Importante:
- La indentación es obligatoria (por convención, 4 espacios).
- No se usan llaves ni paréntesis como en otros lenguajes (C, Java).
Operadores comunes en condiciones:
== # Igualdad
!= # Distinto
> # Mayor que
< # Menor que
>= # Mayor o igual
<= # Menor o igual
Condiciones compuestas
usuario = «admin»
clave = «1234»
if usuario == «admin» and clave == «1234»:
print(«Acceso permitido»)
Buenas prácticas
- Usa condiciones claras y explícitas.
- Evita comparaciones innecesarias como if activo == True: y usa simplemente if activo:.
Bucles: for y while
En Python, los bucles (loops
) son estructuras fundamentales de control de flujo que nos permiten ejecutar un bloque de código de forma repetitiva, lo que es esencial para tareas como recorrer listas, automatizar procesos o realizar cálculos iterativos. Los dos tipos principales de bucles en Python son for
y while
, cada uno con características específicas que los hacen útiles en distintos escenarios.
Bucle for
El bucle for
se utiliza para iterar sobre una secuencia, como una lista, una cadena, una tupla, un diccionario o un rango de números. Es ideal cuando sabes cuántas veces necesitas repetir una acción o estás recorriendo colecciones de datos.
🔍 Aplicaciones típicas del for
:
- Recorrer listas, diccionarios o strings
- Generar tablas de multiplicar
- Procesar archivos línea por línea
- Ejecutar una tarea un número exacto de veces
🛠 Funciones útiles con for
:
range()
: para generar secuencias numéricasenumerate()
: para obtener índice y valor a la vezzip()
: para recorrer dos listas en paralelo
python
nombres = ["Ana", "Luis", "Carlos"]
for nombre in nombres:
print(f"Hola, {nombre}")
Usando range():
python
for i in range(5):
print(i) # Imprime del 0 al 4
python
for i in range(2, 10, 2): # inicio, fin, paso
print(i) # 2, 4, 6, 8
Bucle while
El bucle while
se ejecuta mientras se cumpla una condición booleana. Es útil cuando no sabemos cuántas repeticiones se necesitan, pero queremos continuar hasta que una condición deje de cumplirse.
🔍 Aplicaciones típicas del while
:
- Validar contraseñas o entradas del usuario
- Esperar un evento o respuesta específica
- Reintentar tareas hasta obtener el resultado correcto
- Crear menús o bucles infinitos controlados manualmente
⚠️ Precauciones con while
Es importante asegurarse de que la condición del while
cambie dentro del bucle, de lo contrario podrías generar un bucle infinito.
python
contador = 0
while contador < 5:
print(f"Contador: {contador}")
contador += 1
Cuidado con bucles infinitos:
python
# while True:
# print("Esto nunca se detendrá")
Instrucciones útiles
- break: termina el bucle.
- continue: salta a la siguiente iteración.
- else: (poco común) se ejecuta si el bucle no se interrumpe con break.
python
for i in range(5):
if i == 3:
Break
else:
print("Bucle finalizado sin interrupciones")
Comprensión de listas (List Comprehensions)
Una de las características más potentes de Python es la capacidad de crear listas de forma concisa y expresiva mediante list comprehensions.
Ejemplo básico
python
cuadrados = [x**2 for x in range(10)]
print(cuadrados) # [0, 1, 4, 9, 16, ..., 81]
Con condiciones
python
pares = [x for x in range(20) if x % 2 == 0]
Equivalente a:
python
pares = []for x in range(20):
if x % 2 == 0:
pares.append(x)
Anidamiento
python
matriz = [[1, 2], [3, 4], [5, 6]]
plana = [num for fila in matriz for num in fila]
Con transformaciones
python
palabras = ["Python", "fluente", "biblioteca"]
mayusculas = [p.upper() for p in palabras]
Cuándo usar cada estructura
Estructura | Usar cuando… |
if / elif / else | Hay decisiones que tomar según condiciones |
for | Se necesita iterar sobre elementos conocidos |
while | La condición de parada es desconocida o depende del tiempo |
list comprehension | Se necesita construir una nueva lista de forma limpia y concisa |
🧠 Ejercicio 1: Número positivo, negativo o cero
Pide un número al usuario e indica si es positivo, negativo o cero.
Mostrar solución
num = float(input("Introduce un número: "))
if num > 0:
print("El número es positivo.")
elif num < 0:
print("El número es negativo.")
else:
print("El número es cero.")
🔁 Ejercicio 2: Contar del 1 al 10 con un bucle while
Usa un bucle while para mostrar los números del 1 al 10 en pantalla.
Mostrar solución
i = 1
while i <= 10:
print(i)
i += 1
📊 Ejercicio 3: Tabla de multiplicar con for
Pide un número al usuario y muestra su tabla de multiplicar del 1 al 10.
Mostrar solución
n = int(input("Introduce un número para ver su tabla de multiplicar: "))
for i in range(1, 11):
print(f"{n} x {i} = {n * i}")
🔢 Ejercicio 4: Números pares del 1 al 20
Muestra todos los números pares del 1 al 20 utilizando un bucle for y un condicional if.
Mostrar solución
for i in range(1, 21):
if i % 2 == 0:
print(i)
❌ Ejercicio 5: Validador de contraseña
Pide al usuario que introduzca una contraseña. Si no coincide con la correcta, vuelve a pedirla hasta que acierte.
Mostrar solución
clave_correcta = "python2025"
entrada = ""
while entrada != clave_correcta:
entrada = input("Introduce la contraseña: ")
if entrada != clave_correcta:
print("Contraseña incorrecta, intenta de nuevo.")
print("¡Acceso concedido!")
🗣️ ¿Te ha parecido interesante?
Si este contenido suscríbete a nuestra newsletter para no perderte futuras publicaciones sobre Python, automatización, desarrollo web y más.
💭 Además, déjanos un comentario con tus opiniones o cuéntanos qué temas te gustaría que tratemos próximamente. ¡Tu participación nos ayuda a crear mejor contenido para ti!