La forma habitual de recorrer los elementos de un conjunto en Python es la siguiente

for variable in secuencia:
	Declaración1
	Declaración2	
	...
	Declaraciónn

Así por ejemplo, si tenemos una lista, y queremos visualizar todos sus elementos, la forma de hacerlo sería la siguiente:

lista=[1,2,3,4,5,6,7,8,9,10]

for elemento in lista:

print(elemento)

Al ejecutar el anterior script Python, obtendríamos lo siguiente:

/usr/bin/python2.7
1
2
3
4
5
6
7
8
9
10

Process finished with exit code 0

Es decir, se ha recorrido cada elemento en la lista, y cada uno de ellos se ha visualizado por pantalla.

No obstante, los que venimos del lenguaje de programación C, estamos acostumbrados a la siguiente construcción de bucle…

for(i=0;i<n;i++)

{

printf(“%d”,i)

}

¿Cómo se migra esa construcción tan característica del lenguaje C a Python?

Necesitamos conocer la función incorporada al lenguaje Python range()

La función range se usa para generar una lista de progresiones aritméticas.

Su sintaxis es: range (inicio, fin, paso)

Un ejemplo:

rango=range(1,10)
print(rango)

¿Qué creéis que mostrará la ejecución del anterior script?

A priori, podría pensarse que mostrará una lista de números del 1 al 10 ¿verdad?
No es el caso, lo que muestra es una lista de números del 1 al 9, tal y como sigue:

/usr/bin/python2.7
[1, 2, 3, 4, 5, 6, 7, 8, 9]

El valor de fin en la función range, es el número inmediatamente superior al que queremos obtener en la progresión.

Combinando range con for.

Así que la manera de imitar el comportamiento de un bucle for en Python es combinar for y range.

Vamos a migrar el siguiente bucle C a Python

for (i=0;i<=10;i=i+2)

{

}

Dicho bucle en Python se escribiría del siguiente modo

for i in range(0,11,2):

¡A programar!