¿Por qué Python for loop no funciona como C for loop?

C

# include <stdio.h>
main()
{
    int i;
    for (i=0; i<10; i++)
    {
           if (i>5) 
           {
             i=i-1;     
             printf("%d",i);
           } 
    }
}

Pitón

for i in range(10):
   if i>5: i=i-1
   print(i)

Cuando compilamos el código C, entra en un ciclo infinito imprimiendo 5 para siempre, mientras que en Python no lo hace, ¿por qué no?

La salida de Python es:

0 1 2 3 4 5 5 6 7 8