L’instruction for est une instruction composée, c’est-à-dire une instruction dont l’en-tête se termine par deux-points :, suivie d’un bloc indenté qui constitue le corps de la boucle.

On dit que l’on réalise une itération de la boucle à chaque fois que le corps de la boucle est exécuté.

for i in [0, 1, 2, 3]:
 
   print("i a pour valeur", i)

Dans l’en-tête de la boucle, on précise après le mot-clé for le nom d’une variable (i dans l’exemple ci-dessus) qui prendra successivement toutes les valeurs qui sont données après le mot-clé in. On dit souvent que cette variable (ici i) est un compteur car elle sert à numéroter les itérations de la boucle.

Il est possible d’obtenir le même résultat sans donner la liste des valeurs, mais en utilisant la fontion range().

for i in range(4):
    print("i a pour valeur", i)

Pour parcourir les indices d’une liste, il est possible de combiner range() et len() comme ci-dessous :

c = ["Marc", "est", "dans", "le", "jardin"]
for i in range(len(c)):
    print("i vaut", i, "et c[i] vaut", c[i])

Affichage après exécution :

 i vaut 0 et c[i] vaut Marc
i vaut 1 et c[i] vaut est
i vaut 2 et c[i] vaut dans
i vaut 3 et c[i] vaut le
i vaut 4 et c[i] vaut jardin

source https://courspython.com/boucles.html