Este tutorial le enseñará todo sobre el uso de los bucles para en Python con ejemplos de código.
En programación, los bucles le ayudarán a repetir un conjunto específico de sentencias. Utilizará bucles for para iteraciones definidas cuando:
- sabe que trabajará con una secuencia con un número finito de elementos
- conoce de antemano el número de repeticiones
Este tutorial le enseñará todo sobre el trabajo con bucles for en Python. Comenzará aprendiendo la sintaxis y las iteraciones simples utilizando un bucle for. Después, aprenderá sobre el procesamiento de argumentos en la línea de comandos, el uso de sentencias de control de bucles y mucho más.
Empecemos..
Sintaxis del bucle for de Python

La sintaxis genérica para utilizar el bucle for en Python es la siguiente:
for item in iterable:
# hacer algo en item
statement_1
statement_2
.
.
.
statement_n
En la sintaxis anterior
- artículo es la variable de bucle.
- iterable denota cualquier iterable de Python como listas, tuplas y cadenas.
- declaración_1 a declaración_n denotan las sentencias en el cuerpo del bucle.
Nota: Asegúrese de añadir dos puntos (:
) después del nombre del iterable y de aplicar una sangría de cuatro espacios a todas las sentencias del cuerpo del bucle.
Construcciones comunes de bucle for en Python

Cuando utilice un bucle for:
- Puede acceder directamente a los elementos utilizando la sintaxis comentada en la sección anterior.
- Puede utilizar el bucle for junto con funciones incorporadas de Python como
range()
yenumerate()
.
Las cubriremos en esta sección.
Uso del bucle for para acceder a elementos
Para mejorar la legibilidad, debe elegir una variable de bucle indicativa de lo que contiene la lista. Por ejemplo, en el ejemplo siguiente, nums
es una lista de números en la que utilizamos num
como variable de bucle. Observe que para num en nums:
es intuitivo y fácil de leer.
nums = [4,5,9,1,3]
for num in nums:
print(num)
# Salida
4
5
9
1
3
Añadiendo algunos ejemplos más, puede utilizar for fruit en fruits:
y para student en students:
al recorrer en bucle las listas fruits
y students
respectivamente.
Uso del bucle for con la función range()
Cuando desee acceder a un elemento de la lista a través de su índice, puede utilizar la función range( )
.
En Python,
range(start, stop, step)
devuelve un objeto range, que puede recorrer en bucle para obtener los índices:start
,start step
, y así sucesivamente, hastastop
pero sin incluirlo.
for i in range(len(nums)):
print(nums<x><x><x><x>[i]</x></x></x></x>)
# Salida
4
5
9
1
3
También puede utilizar la función range(
) para generar una secuencia de números por la que hacer un bucle. En el ejemplo siguiente, fijamos el parámetro opcional step
en 2. Así obtendremos números desde 10 hasta 20, pero sin incluirlos, en pasos de 2.
for i in range(10,20,2):
print(i)
# Salida
10
12
14
16
18
Uso del bucle for con la función enumerate()
Cuando desee realizar un bucle a través de un iterable y acceder a los elementos y sus índices simultáneamente, puede utilizar la función enumerar().
He aquí un ejemplo.
for idx, num in enumerate(nums):
print(f"{idx}:{num}")
# Salida
0:4
1:5
2:9
3:1
4:3

Cómo leer elementos de listas utilizando el bucle for en Python
Para recorrer listas en Python utilizando el bucle for, puede utilizar la sintaxis genérica de la sección anterior.
En el ejemplo siguiente, nums
es iterable, y num es la variable de bucle.
nums = [4,5,9,1,3]
for num in nums:
print(f"{num} veces 3 es {num*3}") # acción en cada num
# Salida
4 veces 3 es 12
5 veces 3 es 15
9 veces 3 es 27
1 vez 3 es 3
3 veces 3 es 9
Cómo recorrer cadenas usando el bucle for en Python
Las cadenas en Python son iterables y puede realizar bucles, indexaciones, cortes y mucho más.
Nota: Python no tiene un tipo de datos de caracteres incorporado. Así que puede tratar un carácter como una cadena de longitud uno.
mi_cadena = "Código"
for char in mi_cadena:
print(char)
# Salida
C
o
d
e
Cómo recorrer matrices utilizando el bucle for en Python

Puede realizar bucles a través de matrices utilizando bucles y anidando bucles for.
En el fragmento de código siguiente, array1 es una lista anidada que contiene listas más pequeñas como sus elementos. Por lo tanto, al hacer un bucle a través de array1 se obtiene cada fila, como se muestra a continuación.
array1 = [[2,3],[7,8]]
for row in array1:
print(row)
# Salida
[2, 3]
[7, 8]
Para acceder a los elementos individuales de cada fila, puede utilizar otro bucle for
.
array1 = [[2,3],[7,8]]
for row in array1:
for elt in row:
print(elt)
En la celda de código anterior:
- El bucle para exterior le ayuda a indexar las filas.
- El bucle for interno le permite acceder a los elementos de cada fila.
He aquí la salida correspondiente.
Salida
2
3
7
8
Cómo leer los argumentos de la línea de órdenes utilizando el bucle for

Como desarrollador, debería sentirse cómodo ejecutando scripts Python desde la línea de comandos y utilizando argumentos de línea de comandos para interactuar con su script.
Puede utilizar los módulos incorporados de Python como sys y argparse para analizar y leer los argumentos de la línea de comandos.
En esta sección, repasaremos cómo utilizar el módulo sys
y usar un bucle for
para recorrer la lista de argumentos de la línea de comandos.
En el módulo sys, sys.argv
es la lista de argumentos de la línea de órdenes que usted pasa. Así que puede recorrer sys
.argv de la misma forma que recorrería cualquier lista de Python.
# main.py
import sys
for arg in sys.argv:
print(arg)
Ahora puede ejecutar el programa desde la línea de comandos, como se muestra a continuación.
$ python main.py Hola Python3
main.py
Hola
Python3
Por defecto, el nombre del módulo es el primer argumento y se encuentra en el índice cero de sys.argv
.
Si desea acceder a los índices y a los argumentos correspondientes, puede utilizar la función range()
.
# main.py
import sys
for i in range(len(sys.argv)):
print(f "arg{i} is {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
▶️ A continuación, vuelva a ejecutar main.py.
$ python main.py Hola Python3
arg0 es main.py
arg1 es Hola
arg2 es Python3
Supongamos que desea analizar y procesar los argumentos distintos del nombre del módulo. Puede establecer el valor de inicio en 1, como en la celda de código siguiente.
# main.py
import sys
for i in range(1,len(sys.argv)):
print(f "arg{i} is {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
$ python main.py Hola Python3
arg1 es Hola
arg2 es Python3

Poniéndolo todo junto, el fichero main.py contiene el siguiente código.
# main.py
import sys
print("\nImprimiendo todos los argumentos de la línea de comandos...")
for arg in sys.argv:
print(arg)
print("\nImprimiendo todos los argumentos de la línea de comandos con índice...")
for i in range(len(sys.argv)):
print(f "arg{i} is {sys.argv<x><x><x><x>[i</x></x></x></x>]}")
print("\nImprimiendo argumentos de línea de comandos excepto arg0: nombre_módulo...")
for i in range(1,len(sys.argv)):
print(f "arg{i} is {sys.argv<x><x><x><x>[i]</x></x></x></x>}")
A continuación se muestra la salida al ejecutar el módulo.
$ python main.py Hola Python3
Imprimiendo todos los argumentos de la línea de comandos...
main.py
Hola
Python3
Imprimiendo todos los argumentos de la línea de comandos con índice...
arg0 es main.py
arg1 es Hola
arg2 es Python3
Imprimiendo los argumentos de la línea de comandos excepto arg0: module_name...
arg1 es Hola
arg2 es Python3
Cómo utilizar la sentencia break dentro del bucle for

Al igual que otros lenguajes de programación, Python también admite el uso de las sentencias de control de bucle break
y continue
. Estas sentencias pueden ayudar a alterar el flujo de control en los bucles, basándose en algunas condiciones. Veamos cómo utilizarlas dentro de un bucle for.
La sentencia break
the puede utilizarse para salir de un bucle cuando una condición específica es True
.
Queremos escribir un programa que haga lo siguiente:
- Fijar
k
, el número de entradas. - Utilice un bucle
for
para leer las entradas del usuario, un dígito cada vez, y sume los números no negativos (mayores o iguales que cero). - Este proceso debe continuar mientras el usuario introduce números no negativos.
- Cuando el usuario introduce un número negativo, sale del bucle e imprima la suma.
He aquí el código que realiza la tarea anterior.
k= 5
suma = 0
para i en rango(k):
num = int(input("\nIntroduzca un número: "))
si num<0:
break # salir del bucle cuando num < 0
suma = num
print(suma)
Si el usuario introduce un número menor que cero, el control sale del bucle hacia la primera sentencia después del bucle.
Introduzca un número: 2
Introduzca un número: 3
Introduzca un número: 5
Introduzca un número: -1
10
Cómo utilizar la sentencia continue dentro del bucle for
La sentencia continue
puede utilizarse para saltarse ciertas iteraciones dependiendo de una condición específica.
Utilicemos los mismos ejemplos de la sección anterior.
- Lea la entrada del usuario y calcule la suma de números no negativos.
- Si el usuario introduce un número negativo, se salta esa iteración, se pasa a la siguiente iteración,y se lee el siguiente número.
k = 5
sum = 0
for i in range(k):
num = int(input("\nIntroduzca un número: "))
if num<0:
continue
sum = num
print(sum)
He aquí un ejemplo de salida.
Introduzca un número: 2
Introduzca un número: 3
Introduzca un número: 5
Introduzca un número: -1
Introduzca un número: 3
13
El cuarto número es -1, que es negativo. Sin embargo, esta vez el bucle for continúa hasta que alcanzamos el número especificado de entradas, e ignora las entradas negativas. Esencialmente, devuelve la suma de todos los números no negativos de los k números de entrada.
¿Puede encontrarse con un bucle por infinito en Python?

En todos los ejemplos y casos de uso que hemos discutido hasta ahora, nunca nos hemos encontrado con el problema de un bucle para infinito. Pero, ¿podemos tener un bucle para infinito en Python?
Considere la siguiente función double()
.
def double(x = 1):
return x*2
- Cuando llame a la función double(
)
sin especificar el valor dex
, se utiliza el valor por defecto de 1. - Cuando se especifica un valor para
x
en la llamada a la función, se utiliza ese valor.
double()
# Devuelve: 2
double(20)
# Devuelve: 40
En Python, la función iter () devuelve un objeto iterador. Puede utilizar next(iter-obj)
para iterar a través de la secuencia y acceder a los elementos subsiguientes.
- Considere un objeto-llamable y un valor, centinela.
- se puede utilizar
iter(objeto-llamable,
centinela) para realizar la iteración hasta que el valor de retorno delobjeto-llamable
mar igual acentinela
.
¿Ve por qué podemos tener un bucle por infinito en este caso?

Bien, usted tiene un objeto invocable
y un valor centinela
. Si el valor de retorno del objeto invocable nunca es igual al centinela, ¡entonces el bucle continúa para siempre!
Utilicemos la función anterior doble
como el objeto invocable, y establezcamos el valor centinela en 0.
Nota: Mencione el nombre de la función double
, no la llame a la función double()
.
Como el valor de retorno de la función double
es siempre 2 y nunca es igual a 0, ¡tenemos un bucle infinito!
▶️ Pruebe a ejecutar la siguiente celda de código. Es un bucle para infinito, y tendrá que forzar la detención del programa.
for _ in iter(double,0):
print("Ejecutando...")

Bucles For de Python: Preguntas de práctica
#1. Utilice el bucle for para imprimir todos los números pares en el rango de 0 a 20.
Sugerencia: Utilice la función range(
) con el valor de paso
correcto.
#2. Imprima todos los números pares desde 20 hasta 0.
Pista: Utilice un valor negativo para el parámetro step
en la función range( )
.
#3. Cree una matriz NumPy tridimensional.
Sugerencia: Utilice bucles for y bucles for anidados según sea necesario para acceder a las filas y entradas individuales de la matriz.
Recapitulación
He aquí un resumen de lo que ha aprendido en este tutorial.
- La sintaxis para utilizar el bucle for de Python junto con las funciones range() y enumerate()
- El uso de bucles for para recorrer listas, matrices y cadenas, y leer argumentos de la línea de comandos
- Utilización de las sentencias de control del bucle: break para salir del bucle y la sentencia continue para saltarse ciertas iteraciones -basadas en condiciones- dentro de los bucles para
- Comprender la posibilidad de bucles para infinitos en Python
A continuación, aprenda a utilizar el método split() en Python.