BUCLES
Claro, el control de flujo en Python permite dirigir el curso de ejecuci贸n del programa bas谩ndose en condiciones y repeticiones. Esto se logra mediante el uso de condicionales y bucles. A continuaci贸n, te explico ambos conceptos en detalle:
Condicionales
Los condicionales permiten ejecutar ciertos bloques de c贸digo solo si se cumplen ciertas condiciones. En Python, esto se logra utilizando las declaraciones if
, elif
y else
.
Estructura de if
La estructura b谩sica de una declaraci贸n if
es:
if condici贸n:
# bloque de c贸digo a ejecutar si la condici贸n es verdadera
Estructura de if-else
Para manejar dos posibles caminos de ejecuci贸n, se usa if-else
:
if condici贸n:
# bloque de c贸digo a ejecutar si la condici贸n es verdadera
else:
# bloque de c贸digo a ejecutar si la condici贸n es falsa
Estructura de if-elif-else
Para manejar m煤ltiples condiciones, se utiliza if-elif-else
:
if condici贸n1:
# bloque de c贸digo a ejecutar si condici贸n1 es verdadera
elif condici贸n2:
# bloque de c贸digo a ejecutar si condici贸n2 es verdadera
else:
# bloque de c贸digo a ejecutar si ninguna de las condiciones anteriores es verdadera
Ejemplo de Condicionales
edad = 18
if edad < 18:
print("Eres menor de edad.")
elif edad == 18:
print("Acabas de alcanzar la mayor铆a de edad.")
else:
print("Eres mayor de edad.")
Bucles
Los bucles permiten repetir un bloque de c贸digo varias veces. Python soporta dos tipos principales de bucles: for
y while
.
Bucle for
El bucle for
se utiliza para iterar sobre una secuencia (como una lista, tupla, diccionario, conjunto o cadena).
for elemento in secuencia:
# bloque de c贸digo a ejecutar por cada elemento en la secuencia
Ejemplo de for
numeros = [1, 2, 3, 4, 5]
for numero in numeros:
print(numero)
Bucle while
El bucle while
se ejecuta mientras una condici贸n sea verdadera.
while condici贸n:
# bloque de c贸digo a ejecutar mientras la condici贸n sea verdadera
Ejemplo de while
contador = 0
while contador < 5:
print(contador)
contador += 1
Control de Flujo en Bucles
break
La declaraci贸n break
se utiliza para salir de un bucle antes de que haya terminado de ejecutarse.
for numero in numeros:
if numero == 3:
break
print(numero)
continue
La declaraci贸n continue
se utiliza para omitir el resto del bloque de c贸digo en la iteraci贸n actual y continuar con la siguiente iteraci贸n.
for numero in numeros:
if numero == 3:
continue
print(numero)
Bucles Anidados
Puedes tener bucles dentro de otros bucles.
for i in range(3):
for j in range(2):
print(f"i={i}, j={j}")
Ejemplo Completo
Combina condicionales y bucles para crear un programa m谩s complejo:
numeros = [1, 2, 3, 4, 5]
for numero in numeros:
if numero % 2 == 0:
print(f"{numero} es par.")
else:
print(f"{numero} es impar.")
Este ejemplo recorre una lista de n煤meros y utiliza una declaraci贸n if-else
para determinar si cada n煤mero es par o impar.
Claro, el bucle for
en Python es una herramienta muy poderosa y flexible para iterar sobre secuencias como listas, tuplas, diccionarios, conjuntos y cadenas. A continuaci贸n, te explico en detalle c贸mo funciona el bucle for
, incluyendo todas sus variantes y usos.
Bucle for
B谩sico
Iteraci贸n sobre Listas
La forma m谩s b谩sica del bucle for
es iterar sobre una lista.
numeros = [1, 2, 3, 4, 5]
for numero in numeros:
print(numero)
Iteraci贸n sobre Cadenas
Tambi茅n puedes iterar sobre cada car谩cter de una cadena.
mensaje = "Hola"
for letra in mensaje:
print(letra)
Iteraci贸n sobre Tuplas
Las tuplas tambi茅n pueden ser iteradas con for
.
colores = ('rojo', 'verde', 'azul')
for color in colores:
print(color)
Iteraci贸n sobre Diccionarios
Puedes iterar sobre las claves, los valores o los pares clave-valor de un diccionario.
Iterar sobre Claves:
persona = {'nombre': 'Juan', 'edad': 30}
for clave in persona:
print(clave)
Iterar sobre Valores:
for valor in persona.values():
print(valor)
Iterar sobre Pares Clave-Valor:
for clave, valor in persona.items():
print(f"{clave}: {valor}")
Uso del range
El range
es una funci贸n muy 煤til para generar una secuencia de n煤meros, que a menudo se utiliza con for
.
Iteraci贸n con range
Desde 0 hasta n-1:
for i in range(5):
print(i)
Especificar el Inicio y el Fin:
for i in range(2, 6):
print(i)
Especificar el Paso:
for i in range(2, 10, 2):
print(i)
Bucles Anidados
Puedes anidar un bucle for
dentro de otro bucle for
. Esto es 煤til para iterar sobre estructuras de datos m谩s complejas, como listas de listas (matrices).
Ejemplo de Bucles Anidados
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for fila in matriz:
for elemento in fila:
print(elemento)
Funciones enumerate
, zip
y sorted
enumerate
enumerate
permite iterar sobre una secuencia y tener un contador que indica la posici贸n del elemento en la secuencia.
frutas = ['manzana', 'banana', 'cereza']
for indice, fruta in enumerate(frutas):
print(f"{indice}: {fruta}")
zip
zip
permite iterar sobre dos (o m谩s) secuencias al mismo tiempo, emparejando los elementos correspondientes.
nombres = ['Ana', 'Luis', 'Carlos']
edades = [28, 34, 22]
for nombre, edad in zip(nombres, edades):
print(f"{nombre} tiene {edad} a帽os")
sorted
sorted
devuelve una nueva lista ordenada a partir de los elementos de cualquier iterable.
numeros = [4, 1, 3, 2]
for numero in sorted(numeros):
print(numero)
break
, continue
y else
en Bucles
break
break
se utiliza para salir del bucle antes de que haya terminado su iteraci贸n completa.
for numero in numeros:
if numero == 3:
break
print(numero)
continue
continue
omite el resto del bloque de c贸digo en la iteraci贸n actual y contin煤a con la siguiente iteraci贸n.
for numero in numeros:
if numero == 3:
continue
print(numero)
else
en Bucles
La cl谩usula else
en un bucle for
se ejecuta cuando el bucle se completa sin encontrar una instrucci贸n break
.
for numero in numeros:
print(numero)
else:
print("Bucle completado.")
Comprehensions
List Comprehensions
Una forma compacta de crear listas.
cuadrados = [x**2 for x in range(10)]
print(cuadrados)
Set Comprehensions
De forma similar, se pueden crear conjuntos.
cuadrados = {x**2 for x in range(10)}
print(cuadrados)
Dict Comprehensions
Tambi茅n se pueden crear diccionarios de forma compacta.
cuadrados = {x: x**2 for x in range(10)}
print(cuadrados)
Ejemplo Completo
Combina varios conceptos para ilustrar un ejemplo m谩s completo:
nombres = ['Ana', 'Luis', 'Carlos']
edades = [28, 34, 22]
datos = list(zip(nombres, edades))
for i, (nombre, edad) in enumerate(datos):
if edad < 25:
continue
print(f"{i}. {nombre} tiene {edad} a帽os")
else:
print("Iteraci贸n completada.")
Este ejemplo muestra c贸mo combinar zip
, enumerate
, continue
y else
en un solo bucle for
.