Hay dos tipos de bucles en Python: bucles for
y bucles while
.
El bucle for
se utiliza para iterar sobre una secuencia (que puede ser una lista, una tupla, un conjunto, un diccionario, una cadena u otro objeto iterable) y ejecutar un bloque de código para cada elemento en la secuencia. El bucle while
se utiliza para ejecutar un bloque de código repetidamente mientras una condición determinada sea true
. En el bucle while
, la condición se verifica al principio de cada iteración, y se sale del bucle cuando la condición se vuelve falsa. Es importante asegurarse de que la condición eventualmente se vuelva falsa, de lo contrario, el bucle seguirá ejecutándose indefinidamente, lo cual se denomina un bucle infinito.
Sintaxis del bucle for en Python
Un ejemplo de cómo usar el for
para iterar a través de una lista en Python:
cars = ["bmw", "audi", "renault"]
for car in cars:
print(car)
En este ejemplo, tenemos una lista de coches, y queremos imprimir cada coche en una nueva línea. Utilizamos el bucle for
para iterar sobre cada elemento en la lista, y para cada elemento, lo imprimimos en la consola usando la función print
.
Bucle for
en Línea
En este ejemplo, tenemos una lista de números, y queremos crear una nueva lista que contenga el cuadrado de cada número. En lugar de usar un bucle for
tradicional, utilizamos una comprensión de lista, que es una forma más concisa de lograr el mismo resultado.
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)
En este caso, la expresión es x**2
, que es el cuadrado del número actual en la iteración, y el iterable es la lista de números. El resultado de la comprensión de lista es una nueva lista que contiene el cuadrado de cada número: [1, 4, 9, 16, 25]
.
Bucle for
con Índice
En este ejemplo, el bucle
itera sobre la lista cars
e imprime el índice y valor de cada elemento:
cars = ["bmw", "audi", "renault"]
for i in range(len(cars)):
print(i, cars[i])
Función de Potencia en Python Usando un Bucle
def power(a, b):
pow = 1
for i in range(b):
pow *= a
return pow
a = 2
b = 3
print(power(a, b))
Bucles while en Python
Aquí tienes un ejemplo del bucle while
que cuenta de 1
a 10
:
count = 1
while count <= 10:
print(count)
count += 1
En este ejemplo, el bucle comienza con count igual a 1
. La condición count <= 10
es verdadera
, por lo que el código dentro del bucle se ejecuta. Este código imprime el valor de count (que actualmente es 1
) y luego incrementa count en 1
usando el operador +=
. Luego, el bucle verifica de nuevo la condición, que sigue siendo verdadera
porque count ahora es 2
. Este proceso se repite hasta que count alcanza 11
, momento en el cual la condición se vuelve falsa
y el bucle termina.
Nota: Python no tiene un bucle
do-while
como otros lenguajes de programación. Sin embargo, puedes lograr una funcionalidad similar usando una combinación de un buclewhile
y una verificación inicial.
Declaraciones break y continue
En Python, break
y continue
son palabras clave reservadas utilizadas para modificar el comportamiento de los bucles. Te permiten controlar cuándo un bucle debe terminar o saltar ciertas iteraciones basado en una condición.
Ejemplo: Cómo break
un bucle for
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num == 3:
# end for loop
break
print(num)
En este ejemplo, el bucle itera sobre la lista numbers
e imprime cada número. Sin embargo, cuando el valor de num
es igual a 3
, la instrucción break
termina el bucle for
. La salida sería: 1 2
.
Cómo usar continue
en un bucle for
El continue
, por otro lado, se utiliza para saltarse una iteración del bucle basándose en una condición. Cuando se encuentra, hace que la iteración actual del bucle termine y continúa con la siguiente iteración. Aquí tienes un ejemplo de cómo saltarse una iteración en el bucle for
en Python:
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num == 3:
continue
print(num)
En este ejemplo, el bucle itera sobre la lista numbers
e imprime cada número. Sin embargo, cuando el valor de num
es igual a 3
, se ejecuta la declaración continue
, lo que causa que la iteración actual del bucle termine y continúe con la siguiente iteración. La salida sería: 1 2 4 5
.
Ejemplo de continue
en un bucle while
Usar continue
en un bucle while
en Python es una forma de omitir ciertas iteraciones del bucle y proceder a la siguiente iteración. Esto puede ser útil cuando necesitas saltarte ciertos valores o condiciones en tu bucle.
i = 0
while i < 10:
i += 1
if i % 2 == 0:
continue
print(i)
En este ejemplo, el bucle itera sobre los números del 1 al 10. Sin embargo, cuando el valor de i
es par, se activa la instrucción continue
, lo que hace que el bucle salte a la siguiente iteración sin ejecutar más código en la iteración actual.
my_list = [1, 2, 3, 4, 5]
while my_list:
val = my_list.pop()
if val == 3:
continue
print(val)
En este ejemplo, el bucle itera sobre los valores en my_list
. Cuando el valor de val
es igual a 3, la sentencia continue
hace que el bucle salte a la próxima iteración sin imprimir el valor.
Cómo break un bucle while
Para romper un bucle while
en Python, puedes usar la sentencia break
. Esta sentencia es responsable de detener el bucle para que no itere más, tan pronto como se cumple una cierta condición. La sintaxis para usar break
en un bucle while
es la siguiente:
while <condition>:
### statements to be executed inside the loop
if <break-condition>:
break
Aquí, <condition>
es la condición del bucle que inicialmente decide si el bucle debe ejecutarse o no, y <break-condition>
es una declaración condicional adicional que define la(s) condición(es) para detener el bucle. Una vez que se cumple esta condición, el bucle se termina automáticamente y el control se transfiere a la siguiente declaración después del bucle.
n = 1
while n <= 10:
print(n)
if n == 5:
break
n += 1
print("Loop Ended")
# Output:
#
# 1
# 2
# 3
# 4
# 5
# Loop Ended
En este ejemplo, el bucle while va a print
números del 1 al 5, y luego stop
en cuanto n == 5
. Se utiliza la instrucción break
para lograr esto, y la salida muestra que el bucle terminó después de completar la ejecución de la condición deseada.
Cómo Detener un Bucle Infinito en Python
while True:
value = input("Enter a number: ")
if value == "stop":
break
print(int(value) ** 2)
print("Loop Ended")
# Output:
# Enter a number: 2
# 4
# Enter a number: 5
# 25
# Enter a number: 3
# 9
# Enter a number: stop
# Loop Ended
En este ejemplo, el bucle while
seguirá pidiéndole al usuario que ingrese un number
, y calculará su cuadrado si el input
es un number
. Si el input
es 'stop', el bucle se romperá y el control se transferirá a la declaración después del bucle.
Este enfoque ayuda a evitar bucles infinitos en Python, y a controlar el flujo de ejecución basado en ciertos criterios.
Un Conteo en un Bucle for
Para contar en un bucle for
en Python, puedes usar una variable contador de bucle. Esta variable lleva un registro del número de veces que se ha ejecutado el bucle for
. Aquí hay dos ejemplos:
count = 0
for i in range(10):
count += 1
print("The loop executed", count, "times.")
En este ejemplo, creamos una variable count
y establecemos su valor inicial en 0. Luego usamos un bucle for
para iterar 10 veces, incrementando la variable count
en 1 cada vez. Finalmente, hacemos un print
del número total de veces que se ejecutó el bucle.
fruits = ['apple', 'banana', 'cherry']
for i, fruit in enumerate(fruits, 1):
print(i, fruit)
En este ejemplo, usamos la función incorporada enumerate()
para iterar sobre una lista de fruits
y sus índices. Comenzamos el índice en 1 pasando el segundo argumento a enumerate()
. Dentro del bucle, print
el índice y el nombre del fruit
.
Al usar una variable de contador de bucle, puedes llevar fácilmente la cuenta de la cantidad de veces que un bucle for
se ha ejecutado en Python. Esto puede ser útil para depurar, probar y analizar el rendimiento.
Bucles Anidados
Los bucles anidados son bucles que se colocan dentro de otro bucle. En Python, los bucles anidados se utilizan principalmente para iterar sobre matrices, matrices y listas multidimensionales. Son útiles para resolver problemas que involucran repetir una tarea para cada elemento de una estructura anidada.
Bucles for
Anidados en Python
El tipo más común de bucle anidado en Python es el bucle for anidado. Este bucle se utiliza para iterar sobre elementos en una estructura anidada usando dos o más declaraciones for
.
Ejemplo Simple de Bucles for
Anidados
numbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in numbers:
for num in row:
print(num)
En este ejemplo, tenemos una matriz de 3 por 3 que está representada por una lista multidimensional. El bucle anidado for itera sobre los elementos de la matriz e imprime cada número en una nueva línea.
Bucles while
Anidados en Python
Los bucles while
anidados en Python utilizan uno o más bucles internos que repiten el mismo proceso varias veces. Se utilizan para iterar sobre elementos de una estructura de datos anidada hasta que se cumpla una cierta condición.
Ejemplo de Bucles while
Anidados
x = 1
y = 1
while x <= 5:
y = 1
while y <= x:
print(y, end="")
y += 1
print()
x += 1
En este ejemplo, utilizamos dos bucles while
anidados para print
un triángulo de numbers
. El bucle while
externo itera sobre cada row
del triángulo, while
el bucle while
interno itera sobre cada número en esa fila.
En general, los bucles anidados son un concepto importante en la programación de Python, y pueden ayudarte a resolver problemas complejos iterando sobre estructuras de datos anidadas. Al incorporar bucles for
y while
anidados en tu código, puedes escribir programas más eficientes, legibles y potentes.
Cómo Usar un Bucle for con una Declaración range
La declaración range
en Python es una función integrada que se puede utilizar para generar una secuencia de números. A menudo se usa en bucles for
para repetir una tarea un cierto número de veces. Aquí hay dos ejemplos de cómo usar la declaración range
en Python:
for i in range(5):
print(i)
for i in range(0, 10, 2):
print(i)
En el primer ejemplo, el bucle for
se utiliza para iterar a través de un rango de números del 0 al 4. En el segundo ejemplo, la función range
se llama con tres argumentos: el número inicial (0), el número final (10) y el paso (2). Esto generará una secuencia de números del 0 al 10 (sin incluir el 10) con un paso de 2. Luego, el bucle for
itera a través de esta secuencia e imprime cada número.
Un Bucle for
Inverso
for i in range(5, 0, -1):
print(i)
# Output:
# 5
# 4
# 3
# 2
# 1
a = ['1', '2', '3', '4', '5']
for i in reversed(a):
print(i)
# Output:
# 5
# 4
# 3
# 2
# 1
Usar la instrucción range
en Python es una forma eficiente de recorrer una secuencia de números y realizar una tarea. Es una técnica comúnmente utilizada en la programación y es fácil de implementar con el bucle for
en Python.
Bucle for en Una Línea
La comprensión de listas facilita escribir un bucle for en una línea en Python. Usar un bucle de una sola línea puede ayudar a simplificar el código y hacerlo más conciso.
squares = [x**2 for x in range(10)]
print(squares)
Salida:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
even_numbers = [num for num in range(20) if num % 2 == 0]
print(even_numbers)
# Output:
#
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
En ambos ejemplos, el bucle for
se condensa en una sola línea usando comprensión de listas. El bucle itera sobre un range
de valores y aplica una condición al range
dado. Esto resulta en una lista con la salida deseada.
Usar un bucle for de una línea en Python es una herramienta poderosa que puede optimizar tu código y hacerlo más eficiente.
Profundizar en el tema
¡Contribuya con nosotros!
No dudes en contribuir a los tutoriales de Python en GitHub: crea un fork, actualiza el contenido y emite un pull request.