Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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

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

Construcciones de bucle for

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() y enumerate().

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 studentsrespectivamente.

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, hasta stop 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
python-para-bucle

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

Recorrer matrices con el bucle for

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

Línea de comandos

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
python-for-loop-command-line-args

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

Declaración 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?

Bucle for infinito

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 de x, 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 del objeto-llamable mar igual a centinela.

¿Ve por qué podemos tener un bucle por infinito en este caso?

python-para-bucle-infinito

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...")
python-para-bucle-infinito

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.

  • Bala Priya C
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder