Los bucles son uno de los elementos esenciales en cualquier lenguaje de programación, y Python no es una excepción. Los bucles se utilizan para repetir una declaración o un bloque de declaraciones varias veces. Si no existiera el concepto de bucles en los lenguajes de programación, tenemos que escribir cada declaración una y otra vez por la cantidad de veces que queramos ejecutarla.
Python proporciona dos tipos de bucles para manejar los requerimientos de bucle, es decir, el tiempo de bucle y la de bucle. En este tutorial, aprenderemos todo sobre la instrucción de bucle for en Python.
Antes de comenzar con este tutorial, es necesario tener Python instalado y configurado en la ruta de su entorno. Si aún no lo tiene instalado, consulte nuestra guía paso a paso para instalar Python en Linux. El código presentado en este tutorial se puede ejecutar en el shell de Python, pero se recomienda ejecutar el código en un IDE de Python. Si no tiene un IDE de Python instalado en su sistema o desea saber qué IDE es una mejor opción para instalar, puede consultar nuestra guía Los 10 mejores IDE de Python comparados.
Descripción general de Python For Loop
El bucle for en Python puede iterar sobre elementos de cualquier secuencia, incluida una cadena, lista, tupla o diccionario. La sintaxis básica del bucle for en Python es:
for var in sequence:
statement(s)
Aquí, una secuencia es una colección de objetos, por ejemplo, una lista o tupla. La var en la sintaxis es la variable de bucle y toma el siguiente elemento de la secuencia siempre que se ejecuta el cuerpo del bucle.
Esto es menos parecido a la palabra clave for presente en otros lenguajes de programación y funciona más como un método iterador, como se encuentra en otros lenguajes de programación orientados a objetos. Si alguna vez ha utilizado lenguajes de programación como C o C ++, es posible que haya visto la sintaxis del bucle for similar a la siguiente:
for(initialization condition increment/decrement)
{
statement(s)
}
Esta sintaxis de bucle for también es utilizada por muchos otros lenguajes de programación como Java, PHP, etc. La sintaxis de bucle for de Python se parece más al lenguaje natural, por lo que es fácil de leer y usar.
Iterando a través de una cadena
Las cadenas son tipos de datos beneficiosos en Python, y podemos iterar rápidamente sobre cadenas usando el bucle for de Python . Consulte el ejemplo siguiente para obtener una ilustración. El siguiente código se puede ejecutar en el shell de Python.
for i in "python"
print(i)
Este código iterará sobre la cadena python e imprimirá cada letra presente en la palabra como salida. La salida del programa se verá como la imagen de abajo.
Usar un bucle for a través de la cadena es muy útil en cualquier situación. Para un ejemplo práctico, podemos contar el número de letras presentes en una cadena usando el bucle for . Consulte el siguiente ejemplo para ver la ilustración. Sin embargo, hay una función len () incorporada en Python para contar la longitud de cadenas, lista, tuplas, etc. El siguiente programa es solo una ilustración de cómo hacerlo manualmente. Copie el siguiente código en un archivo de Python con el nombre length.py y ejecútelo escribiendo el comando python length.py en su terminal.
count = 0
for i in "python":
count = count + 1
print("The number of letters is :",count)
Este sencillo programa se puede utilizar para contar el número de palabras presentes en una cadena. La salida del código anterior se verá como en la siguiente imagen.
Veamos qué sucede en el código anterior. En la primera línea, inicializamos la variable de recuento con el valor 0. En la segunda línea, el ciclo itera la variable i sobre las letras de la cadena “python”, y para cada iteración, habrá un incremento en la variable de recuento. .
Recorrer una lista de Python
También podemos usar el bucle for de Python en una lista de Python. La lista de Python es una de las estructuras de datos más populares utilizadas en Python, por lo que una forma de iterar es útil para los programadores. El bucle de una lista de Python es casi similar al bucle de una cadena. Consulte el siguiente código de Python para ver una ilustración, copie el código en el IDE de Python y ejecútelo.
programming_lang = ["python", "java", "rust", "golang", "c", "swift"]
for languages in programming_lang:
print(languages)
En la primera línea, inicializamos una variable llamada programación_lang con una lista. En la siguiente línea, iteramos a través de esa lista de Python usando un lenguaje variable e imprimimos los elementos de la lista uno por uno. La salida del programa se ve como en la siguiente imagen.
Veamos un ejemplo práctico para saber cómo nos ayudará este concepto en la programación. En el siguiente programa, calcularemos la suma de todos los números presentes en una lista de Python.
numbers = [1,4,7,2,9,10,55]
i = 0
j = 0
for i in numbers:
i = i + j
j = i
print("The sum of the elements in list is",j)
El programa anterior imprimirá la suma de todos los elementos presentes en la lista, como se muestra en la imagen de abajo.
Bucle a través de un diccionario de Python
Hemos visto anteriormente cómo usar el bucle for en listas y cadenas de Python. Ahora vamos a ver cómo usar el bucle for en el diccionario de Python, que también es una estructura de datos poderosa y emocionante en Python.
Veamos cómo usar el bucle for sobre el diccionario de Python. Simplemente copie el siguiente código en un archivo de Python y ejecútelo.
fruits_quantity = {"apple":10, "mango":5, "banana":15}
for fruit in fruits_quantity:
print("The quantity of " + fruit + " is :", fruits_quantity[fruit])
Cuando ejecutamos el código anterior, es posible que veamos la salida algo similar a la siguiente imagen.
Veamos qué está sucediendo en el código anterior. En la primera línea, creamos un diccionario de Python llamado fruit_quantity y almacenamos algunos nombres de frutas como claves de diccionario y el número de frutas como datos del diccionario. Cuando realizamos la operación de bucle for usando una variable de bucle fruit, itera sobre las claves del diccionario. Debido a esto, podemos acceder a una sola clave del diccionario en una ejecución del cuerpo del bucle, y al acceder a la clave, también podemos acceder a los datos que contiene la clave.
La función range ()
La función incorporada range () en Python es la función correcta para iterar sobre una secuencia de números. La sintaxis de la función de rango es
range(n)
La función range () genera un iterador para progresar desde 0 hasta (n-1). De forma predeterminada, el punto de partida es 0, pero también puede ingresar un punto de partida personalizado. consulte el siguiente código para obtener una ilustración
range(2,5)
Este código generará la secuencia de números del 2 al 5. La salida será
>>> range(2,5) range(2, 5)
También puede encasillar la función range () en una lista usando la función list. Vea el siguiente código como ejemplo. Escriba el siguiente código en el shell de Python.
list(range(5))
Al ejecutar el código anterior, verá el resultado como se muestra a continuación. El código producirá una lista de Python con una secuencia de números que van del 0 al 4.
>>> list(range(5)) [0, 1, 2, 3, 4]
Ahora, veamos cómo podemos usar el poder de la función range () con el bucle for de Python y cuál es su necesidad. El bucle for no tiene un método incorporado para iterar sobre números en Python como hay en otros lenguajes de programación, este requisito lo cumple la función range () . Consulte el siguiente código para conocer el funcionamiento de la función range () con el bucle for .
for i in range(10):
print(i)
El programa anterior itera sobre la función de rango y muestra los números del 0 al 9. La salida se parece a la siguiente imagen.
También puede mostrar los elementos de una lista, cadena, tupla o diccionario usando la función range () con el bucle for . Consulte la siguiente ilustración para ver cómo funciona.
fruits = ["apple","mango","grapes","pineapple"]
for i in range(2):
print(fruits[i])
La salida del programa se muestra en la siguiente imagen.
Si el argumento de la función range () es mayor que el número de elementos presentes en la lista, obtendrá un IndexError.
Declaraciones de control de bucle
Las declaraciones de control de bucle alteran la ejecución del bucle de su secuencia típica. Python admite tres tipos de declaraciones de control de bucle son la declaración de romper , continuar y aprobar . Veamos detalles sobre cómo usarlos.
La declaración de ruptura
La sentencia break es una de las sentencias de control de bucle más utilizadas. Con la ayuda de la declaración de bucle, podemos terminar el bucle antes de que haya pasado por todos los elementos. La ejecución se transfiere a la siguiente instrucción que sigue al ciclo. El uso más común de la rotura es cuando se desencadena alguna condición externa que requiere una salida repentina de un bucle. La ruptura se puede utilizar tanto en bucles while como for. Es como el bucle tradicional presente en el lenguaje de programación C. Para obtener una ilustración, consulte el siguiente código. Copie el siguiente código en su Python IDE y ejecútelo.
fruits = ["apple","mango","grapes","pineapple"]
for fruit in fruits:
if fruit =="grapes":
break
print(fruit)
print("Exited from the loop")
En el programa anterior, el ciclo terminará cuando el elemento de la lista sea uvas. Después de la terminación del ciclo, la ejecución es seguida por la siguiente instrucción presente después del ciclo. En nuestro código, es una declaración de impresión, como se muestra en la imagen de salida a continuación.
La declaración de continuar
La instrucción continue en Python es casi similar a la instrucción break. Aún así, en lugar de terminar todo el ciclo, solo termina la iteración actual y pasa a la siguiente iteración. Para obtener una ilustración, consulte el siguiente ejemplo. Copie el código en su IDE favorito y ejecútelo.
fruits = ["apple","mango","grapes","pineapple"]
for fruit in fruits:
if fruit =="grapes":
continue
print(fruit)
El código anterior omitirá la iteración de la cadena “uvas” presente en la lista, por lo que no se muestra en la salida del programa. La salida se muestra en la siguiente imagen.
La declaración de pase
La instrucción pass se usa cuando se necesita una instrucción sintácticamente, pero no queremos que se ejecute ningún código. Dado que los bucles <em>for</em> no pueden mantenerse vacíos si, por alguna razón, queremos mantenerlos vacíos o queremos escribir las declaraciones del bucle, más adelante, podemos usar la declaración pass en el bucle del cuerpo del bucle. Ejecute el siguiente código de Python.
for i in "python":
Al ejecutar el código, obtendrá un error. El error puede parecer así.
SyntaxError: unexpected EOF while parsing
Para evitar este error para un bucle for vacío . Podemos dar una declaración de paso en el cuerpo del bucle. Al ejecutar el siguiente código, no obtendremos ningún error, y también se cumplirá el requisito de un bucle vacío.
for i in "python":
pass
El código anterior se ejecuta sin problemas, sin ningún error. Aunque el pase no es tan popular como el break y continúa en algunos casos, puede ser útil.
La cláusula else en el bucle for
También podemos usar la cláusula else en un bucle for . Las sentencias o bloques presentes dentro de la cláusula else se ejecutarán después de que la iteración del bucle for se ejecute por completo. Consulte el siguiente código para ver una ilustración sobre el uso de la cláusula else con el bucle for.
for i in range(10):
print(i)
else:
print("Displayed")
El código anterior primero ejecutará el ciclo e imprimirá una secuencia de números del 0 al 9. Luego, mostrará el mensaje “Mostrado” en la pantalla, como se muestra en la imagen de abajo.
Si el ciclo for termina antes de que se complete la ejecución debido a una declaración de interrupción o cualquier otro motivo, las declaraciones de la cláusula else no se ejecutarán. Consulte el siguiente ejemplo para ver una ilustración.
for i in range(10):
print(i)
if i == 6:
break
else:
print(" Displayed Successful ")
En este ejemplo, solo se mostrará una secuencia de números del 0 al 6. La declaración de impresión dentro de la cláusula else no se ejecutará ya que la declaración de interrupción finaliza el ciclo antes de la iteración completa. Consulte lo siguiente para ver el resultado del programa anterior.
Anidado para bucles
Como cualquiera de los lenguajes de programación populares, Python también admite el uso de bucles anidados. Los bucles anidados son un bucle presente dentro de otro bucle. Este es un concepto útil de bucles en un lenguaje de programación. En un bucle anidado, el “bucle interno” se ejecutará una vez por cada iteración del “bucle externo”. La sintaxis del bucle anidado se muestra a continuación.
for var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
Para el uso práctico de bucles anidados, consulte el programa de ejemplo a continuación.
for i in range(1,6):
for j in range(1,11):
print(i*j, end=" ")
print("n")
El código anterior imprimirá la tabla de multiplicar del 1 al 5. Verá la salida del programa, como se muestra en la imagen de abajo.
Podemos poner cualquier tipo de bucle dentro de cualquier otro tipo de bucle. Por ejemplo, un bucle for puede estar dentro de un bucle while o viceversa.
Conclusión
Eso es todo sobre el uso de Python for loop. Como puede ver, el uso de bucles for es muy eficiente cuando un conjunto de declaraciones se van a ejecutar de forma iterativa sobre una secuencia de elementos. También puede querer ver trabajar con el sistema operativo usando Python.